STMCU小助手
发布时间:2022-12-23 16:00
|
问题产生8 |: k/ l# B7 |* a0 J& i; n2 ` 最近学习了一下32的串口通信,串口配置还是很简单的,不过后面串口调试助手上面出现的乱码。很让人头疼。 ! e- \' p% S/ L 当然第一时间去百度寻求解决办法。 - n5 }0 \* g* E6 W6 z H" Q5 [- F 先排查这两个问题2 j2 ^( L% O2 S5 y 1.USB转串口的问题! m& B* w" B! i. R* E) |3 U 解决方法: USB转串口坏了的话,换一个好的就没事了。(ps:这个出现的概率比较小)+ ?' N1 v7 v0 q+ d) D% O: d 2.波特率不同步的问题 出现乱码,首先检查一下,串口助手的波特率是不是和程序设置的是一样的,如果一样的话出现乱码,参考下面的解决方法。 外部晶振对串口的影响 stm32的串口使用的是外部高速时钟的时钟源 串口外设是挂在APB总线上的,一般用于低速外设,它是AHB总线时钟分频所得。 这样设计分频是为了降低低速外设的开关损耗。9 ~9 e. g4 [ V k; U! I& t# \: V6 v: K ! B4 q( D. F8 f 然而AHB总线的时钟又源自于高速时钟源。高速时钟源可以是高速内部时钟、高速外部时钟、高速内部或外部时钟PLL倍频所得。$ R: T* T& `2 Q- s" H; j 所以最终串口的波特率受高速时钟的影响。: Z6 ]# o: P, A. J `! N2 { . O+ o/ M- k# `' D- [# O. v' p6 Z+ m
问题解决6 v. C: M7 {+ w# n3 \ 首先找到自己板子上外部晶振,并确定它的大小。
/ y2 D( e/ {7 @- z" W2 B ▲ 博主板子上晶振是8Mhz! C7 g% J) o1 R" \8 v" Q+ ^ G) \ 在官方标准库中,外部时钟频率配置默认 25MHz 的晶振。 1 v. Q" H7 V! y$ ` 而我们需要将外部时钟频率配置成适合自己板子的。 找到 stm32f4xx.h ,在 .h 文件120行左右的地方,默认是这样的:
▲ 默认25Mhz- x8 Y- z5 Z5 @: P# N; G 下面只需定义一下自己开发板的外部时钟源频率即可:(加个宏定义)2 l/ _9 G" ]% s- @+ ~- j3 `3 V
附:如果串口助手没有收到任何东西,请检查连接 TX 、RX 端子的杜邦线是否松动。 9 I, K1 B" W5 Y9 G( y, ]0 a: A$ c 总结4 z2 F8 \) t1 G0 |) x9 q 对于 stm32 的 F1 和 F4 等系列,如果出现串口通信出现乱码的问题,都可以尝试使用上述方法解决。8 v- M: l4 G& }$ E% e + s3 j7 q5 `# w8 g- k 自己开发板上的外部晶振要了解,如果某一总线的时钟来源于外部时钟源,自己使用的外设恰好挂靠在该总线上,利用官方标准库,一定要将 stm32f4xx.h 文件中相关配置加以修改。 ———————————————— 版权声明:AXYZdong |
STM32C542RC开发板的串口不定长数据接收实验
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
微信公众号
手机版