stm32串口4配置与串口1区别_stm32l4串口

stm32串口4配置与串口1区别_stm32l4串口STM32L4 LPUART1经验分享1 现象发现在使用LoRaWAN开发板调试程序时,发现一个现象,LPUART的波特率设置为2400bps时,初始化异常,出现程序进入死循环的现象:同样的,其他条件均不改变,若将波特率修改为<2400的值,则会出现初始化异常;但波特

STM32L4 LPUART1经验分享
  1 现象发现

  在使用LoRaWAN开发板调试程序时,发现一个现象,LPUART的波特率设置为2400bps时,初始化异常,出现程序进入死循环的现象:stm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口

  同样的,其他条件均不改变,若将波特率修改为<2400的值,则会出现初始化异常;但波特率>2400,则初始化正常,程序可正常运行。

  从上述现象可初步得出:波特率值的大小是出现该异常的原因。

  2 原因分析

  翻阅《STM32L4 Reference mannual》中LPUART1的资料, 在"LPUART baud rate generation"章节,有以下关键描述:stm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口

  从文章中可获知:Tx/Rx baud = 256*fck/LPUARTDIV

  其中fck为时钟源频率,程序中LPUART1的时钟源为HSI:16MHz,并且fck需满足[3*baud rate, 4096*baud rate];

  LPUARTDIV的数值范围查看LPUART_BRR 寄存器:stm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口

  从描述可获知:LPUARTDIV的范围是[0x300, 2^20-1]。

  3 问题解决

  3.1 公式反推

  整理上述资料,分析得知:3*baud rate < fck < 4096*baud,fck固定为:16MHz,按照这个范围计算范围,反推看是否成立:

  假设baud rate = 2400bps,那么3*baud rate = 7200,4096*baud rate = 9830400 < 16000000

  可见 fck > 4096*baud rate,不符合要求;

  假设baud rate = 4800bps,那么3*baud rate = 14400,4096*baud rate = 19660800 > 16000000;

  可见fck < 4096*baud rate,符合要求。

  可得出结论,若LPUART的时钟源固定为HSI = 16MHz,那么当波特率 <= 2400时无法满足要求,需更换时钟源。stm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口

  串口4个时钟源

  可看出,若baud rate <= 2400,时钟源更换为LSE = 32.768kHz最为合适。

  3.2 STM32 CubeMX图形化分析

  3.2.1 HSI时钟源分析

  ●使能LPUART1stm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口stm32 cubeMX引脚配置界面

  ●LPUART1时钟选择HSIstm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口stm32 cubeMX时钟配置界面

  ●波特率参数配置  ●双击图中心LPUART按钮  ●选中Baud Rate,下方会自动弹出波特率范围,可看出baud rate > 2400bpsstm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口stm32 cubeMX参数配置界面stm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口stm32 cubeMX波特率参数配置界面

  ●总结

  从stm32cube mx配置中看出,若时钟源为HSI,则baud rate范围:[3.907k, 5.33M],2400bps无法满足。

  3.2.2 LSE时钟源分析

  ●使能LPUART1和LSEstm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口stm32 cubeMX引脚配置界面

  ●LPUART1时钟选择LSEstm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口stm32 cubeMX时钟配置界面

  ●波特率参数配置  ●双击图中心LPUART按钮  ●选中Baud Rate,下方会自动弹出波特率范围,可看出baud rate > 2400bpsstm32串口4配置与串口1区别_stm32l4串口stm32串口4配置与串口1区别_stm32l4串口stm32 cubeMX参数配置界

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/91030.html

(0)
上一篇 2024年 6月 2日 下午1:10
下一篇 2024年 6月 2日 下午1:21

相关推荐

关注微信