STM8L因时钟频率过低造成的串口接收问题


       在调试stm8L101的时候发现,使用115200的波特率发送数据,在串口调试助手发现比其他单片机显示慢,能感觉到字符是一个一个跳出来的。

       当然问题的重点不在这,调试串口接收遇到了蛋疼的问题,串口接收不完整,然而改成9600的波特率却没为题了。由此想到可能是单片机时钟频率太低造成的数据处理不完。使用  u32_clk_freq = CLK_GetClockFreq();获取到时钟频率,果然发现时钟频率为2M。使用CLK_MasterPrescalerConfig(CLK_MasterPrescaler_HSIDiv1);将时钟分频改为1分频后(即时钟频率16M),再使用115200的波特率收发就没问题了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM