完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言
最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样。很多STM32开发板都是使用的8M晶振,这个也是ST官方推荐的晶振频率,而且固件库默认是8M频率,倍频系数9。而uFUN开发板的晶振是和CH340共用一个12M晶振。如果固件库的参数不和硬件实际连接的晶振频率一致,那么不仅是串口会出现乱码,而且定时器这些也是不准确的,因为基本的工作时钟被打乱了。其实之前也遇到过这个问题,这次就算是记录一下吧! 1.修改stm32f10x.h文件中的晶振频率 打开工程中的stm32f10x.h文件,Ctrl+G快捷键定位到119行,把宏定义 #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ 外部晶振频率8M修改为12M #define HSE_VALUE ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */ 如下图所示: 2.修改system_stm32f10x.c文件中的倍频系数 打开工程中的system_stm32f10x.c文件,Ctrl+G快捷键定位到1056行,把宏定义 RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9); 倍频系数由9修改为6,因为STM32F103主频最高到72MHz,外部晶振改为12M后,所以倍频系数改为6 RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6); 如下图所示: 总结 当然串口乱码可能不止这一个原因,这个解决方法只针对于外部晶振的改变,导致的串口数据乱码。其他问题还要仔细分析,总得来说,两个问题:程序问题,硬件问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1100 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1118 浏览 1 评论
551 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
417 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1004 浏览 2 评论
1595浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
264浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
279浏览 3评论
248浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
241浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 09:37 , Processed in 0.930986 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191