1、USB调试注意事项

最近做一个项目,用的是GD32F303的MCU,用到了USB数据传输的方式,该系列MCU只支持USB的DEVICE的模式,不支持OTG模式。本人用的是GD32官方提供的库信息,因此直接移植了官方的DEMO。在调试过程中,调试了很多天,每次插上USB后,电脑均提示“设备描述符请求失败”,一直无果后,偶然间开了内部RC时钟,竟然可以识别了。

后面经分析得知,电路中用的是12M外部晶振,而官方DEMO用的是8M外部晶振。不光需要改宏定义,还要改计算倍数,

改动如下 :

static void system_clock_48m_hxtal(void)
{uint32_t timeout = 0U;uint32_t stab_flag = 0U;/* enable HXTAL */RCU_CTL |= RCU_CTL_HXTALEN;/* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */do{timeout++;stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));/* if fail */if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){while(1){}}RCU_APB1EN |= RCU_APB1EN_PMUEN;PMU_CTL |= PMU_CTL_LDOVS;/* HXTAL is stable *//* AHB = SYSCLK */RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;/* APB2 = AHB/1 */RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;/* APB1 = AHB/2 */RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;#if (defined(GD32F30X_HD) || defined(GD32F30X_XD))/* select HXTAL/2 as clock source */RCU_CFG0 &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0);RCU_CFG0 |= (RCU_PLLSRC_HXTAL_IRC48M | RCU_CFG0_PREDV0);//改了这里,注释掉的是以前的
//    /* CK_PLL = (CK_HXTAL/2) * 12 = 48 MHz */
//    RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4 | RCU_CFG0_PLLMF_5);
//    RCU_CFG0 |= RCU_PLL_MUL12;/* CK_PLL = (CK_HXTAL/2) * 8 = 48 MHz */RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4 | RCU_CFG0_PLLMF_5);RCU_CFG0 |= RCU_PLL_MUL8;#elif defined(GD32F30X_CL)/* CK_PLL = (CK_PREDIV0) * 12 = 48 MHz */ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4 | RCU_CFG0_PLLMF_5);RCU_CFG0 |= (RCU_PLLSRC_HXTAL_IRC48M | RCU_PLL_MUL12);/* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */ RCU_CFG1 &= ~(RCU_CFG1_PLLPRESEL | RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0);RCU_CFG1 |= (RCU_PLLPRESRC_HXTAL | RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10);/* enable PLL1 */RCU_CTL |= RCU_CTL_PLL1EN;/* wait till PLL1 is ready */while((RCU_CTL & RCU_CTL_PLL1STB) == 0){}
#endif /* GD32F30X_HD and GD32F30X_XD *//* enable PLL */RCU_CTL |= RCU_CTL_PLLEN;/* wait until PLL is stable */while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){}/* enable the high-drive to extend the clock frequency to 120 MHz */PMU_CTL |= PMU_CTL_HDEN;while(0U == (PMU_CS & PMU_CS_HDRF)){}/* select the high-drive mode */PMU_CTL |= PMU_CTL_HDS;while(0U == (PMU_CS & PMU_CS_HDSRF)){}/* select PLL as system clock */RCU_CFG0 &= ~RCU_CFG0_SCS;RCU_CFG0 |= RCU_CKSYSSRC_PLL;/* wait until PLL is selected as system clock */while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){}
}

由于该USB DEVICE只支持48MHz时钟,如果按照8Mhz的放大倍数,算出来的与实际的差别很大,因此将时钟修改正确就OK了。

修改掉了注释那里,重新计算,则USB可正常执行。

2 、GD32 DFU问题

官网下的DFU工具,在WIN7上会提示设置选项字节失败。改回WIN10系列后,可正常使用DFU,应该是该软件存在问题,现在并未修复。

GD32 USB调试、DFU过程问题相关推荐

  1. Appium 移动端自动化 - Android SDK连接安卓手机,adb连接一加8手机USB调试实例演示,连接一加8手机不显示USB调试选项问题排查

    Android SDK 连接安卓手机过程演示 第一章:一加8手机连接过程 ① 启用开发者模式 ③ 开发者选项启用 USB 调试 ③ 手机连接 USB 调试 ④ 手机连接不显示 USB 调试选项问题排查 ...

  2. 安卓手机如何防盗_如何设置安卓手机各版本USB调试模式

    关注我们,获得更多资讯 在这篇教学中,小蛙会详细向大家讲解USB调试模式的开启及关闭方法,以及其用途. 在这个过程中,由于Android 机型众多,所以无办法列举太多.但请相信小蛙,开启USB 调试的 ...

  3. CY7C68013A在WIN7下64位的USB驱动程序安装过程

    文章来源说明:CY7C68013A在WIN7下64位的USB驱动程序安装过程遇到好几个问题,在网络上查阅了不少资料,本人只是对网络上的资料进行了整理,不能算是原创,对引用部分均说明了来源,为避免大家重 ...

  4. 掌握这些操作技巧,设置USB调试模式不难

    掌握这些操作技巧,设置USB调试模式不难 如何开启USB调试模式? 什么是USB调试模式? 为什么要开启USB调试模式? 如何关闭USB调试模式? 在这篇教学中,我们会详细向大家讲解USB调试模式的开 ...

  5. usb计算机连接无法连接电脑,如何用数据线连接计算机总是提示无法建立连接,并且USB调试已打开. -...

    您好,建议您更换数据线并再次进行测试. 感谢您的支持,祝您生活愉快! 尊敬的三星用户,您好!建议您按照以下步骤操作: 1. 在待机状态下,单击[取消]-[应用程序]-[开发]-[USB调试],单击复选 ...

  6. nexus 5x手机进入开发者模式+开启USB调试功能

    文章目录 学习目标: 开发者模式: 1.打开开关 2.进入开发者模式 3.开启USB调试: 4.截图过程 学习目标: 本文只是为了记录,如何进入开发者模式和打开USB调试,网上买了一个nexus 5x ...

  7. 常识——手机改直供电+usb调试

    文章目录 前言 过程 前言 手机改直供电的好处无非是重量更轻,而且持久续航,因此改成车辆中控或者车辆导航都是没有问题的 当然我还哟其他考虑 我买了一个插入手机的vr眼镜,很多人可能嘲笑,这样没有技术含 ...

  8. 手机打开USB调试(华为)

    为什么80%的码农都做不了架构师?>>>    手机打开USB调试(华为) 问题描述 原材料 加工过程 问题描述 使用此笔记记录手机打开USB调试(华为) 原材料 一个恢复过出厂设置 ...

  9. HC-05蓝牙调试基本过程

    HC-05蓝牙调试基本过程 需要的东西: 蓝牙模块2.串口助手/单片机(自带串口)3.串口调试助手 电路连接: 蓝牙模块 串口/单片机 RX RX TX TX GND GND +5V VCC 注意:R ...

  10. android usb设置在哪,手机usb调试在哪,小编教你安卓手机怎么打开USB调试

    作为Android手机,如果我们需要将手机连接电脑传输文件.下载安装应用软件.备份文件甚至ROOT等,都需要打开手机的USB调试.可是每个手机的USB调试的位置和打开的方式都有所不同,不过最底层的An ...

最新文章

  1. 顺序表-有序顺序表表示集合-交集(while + 值比较)
  2. python【力扣LeetCode算法题库】面试题 01.06-字符串压缩
  3. 没有任何基础的可以学python吗-没有任何基础的人,该如何学习Python?「附具体步骤」...
  4. 不想学python-学Python好久都学不会?然后选择放弃,总结出这几个原因
  5. WINCE6 同时支持简繁体
  6. UITableView 系列五 :自定义UITableViewCell (实例)
  7. 【踩坑】Linux下配置torch-geometric
  8. windows Server 2003使用ip安全策略禁止某ip访问服务器的方法
  9. c++笔记(10) 文件输入输出
  10. 把苦难装在心里--《赢在中国》(2008-05-27)
  11. 学习C语言必须掌握的10个经典的C语言小程序
  12. [Qt] network使用post时含有中文 reply 接收报错 bad request 错误码400
  13. 高仿今日头条视频列表功能
  14. python 获取硬盘信息失败请谨慎操作_老毛桃pe装机工具出现获取硬盘信息失败,请谨慎操作...
  15. 计算机和信息技术革命,人类历史上的四次信息技术革命
  16. 顺芯ES8374单声道codec音频解码芯片,集成功放IC
  17. Neutron 架构
  18. Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)
  19. OSPF路由协议详解与实战演练
  20. 基于词典规则的中文分词(C语言实现)

热门文章

  1. 计算机开不了演示文稿ppt,电脑打不开ppt了怎么办
  2. 中州韵输入法 linux 小鹤双拼,「Rime 鼠须管」小鹤双拼配置指南
  3. java二重积分_用java实现二重积分的计算
  4. 【PyCharm】PyCharm破解版在系统崩溃后无法启动
  5. java翁凯_翁凯-JAVA
  6. charls https抓包
  7. #真女神转生3#PS2模拟器下开老金
  8. 【HTML+CSS】移动端布局之流式布局
  9. gis如何加入emf图片_ArcGIS教程:地图导出格式,教你如何选择
  10. 机器人拉格朗日动力学应用公式详解