晶振输出频率不对,晶振误差多少会影响串口
广告
国产替换STM32系列,首先得有一个开发板来评估性能,以判断电子产品的"心脏"替换是否可行,当然现在国产CortexM系列单片机都提供官方例程的,所以很容易就可以开展程序编写了,最近在看华大HC32系列单片机的例子,基本和STM32的HAL库类似,如果之前熟悉HAL库为基础进行程阳开发的应该很容易上手,但是我们还是要从最底层学习起,从汇编初始化最后到C的main。
1、单片机串口传送晶振是24M的除了9600波特率,其他波特率均不能正常显...51单片机,用12或24MHz的晶振,串口通信时波特率误差是很大的啊!比如24MHz时,单片机定时器实际使用的信号频率是2MHz,用T2定时器做波特率发生器产生9600的波特率,得到的参数是6.51,所以你取65530或者65529时误差都大的惊人,得到的实际波特率是10416和8928。要想得到准确的9600波特率,只能选用11.0592、18.432或者22.1184这样的晶振。
2、51单片机晶振选用12M,串口通信波特率用9600,我想问下怎么才能串口打印...12M通信不标准,要用11.0592M的晶振才能有标准的9600波特,设置好波特率后送到SBUF里发送就行。TH1204;TL1204;改为TH1230;TL1230;此时波特率为1200。movsbuf,#55H就好了,它会自动把55H发送出去。12M晶振不能输出9600的波特率;12M晶振只能输出1200的波特率,有少量误差,不过不影响使用。
3、两个单片机串口通信晶振频率问题串口通讯不取决于系统的频率,而是取决于串口参数的设置,或者说协议。2个系统的协议是一致的就可以,先用示波器测量C5131通信的波特率是多少,如果是S4051用11.0592能正常产生的,就算没问题。当然,两个都用24MHz也不错,比如C5131产生19200bps波特率是有出差的,S4051也会同样的误差,但两者波特率相同,一样能正常接收。
上一篇: ,接近开关串联如何接线图
下一篇: ,linux如何输出hdmi