8m晶振波特率误差(8mhz晶振)

admin 98 0

单片机本来使用的是11.0592MHZ的晶振,如果我换成或8M的晶振会不会影响...

单片机定时器定时的长短是由晶振频率决定的,所以,更换不同频率的晶振,肯定会影响原来定时的时间的,如果是电子钟、万年历之类的程序,计时肯定是不准了。因此,必须要调整程序,重新计算定时常数。特别是用DS18B20测温度,就不能正常读出温度,而调整读写程序是非常麻烦的,所以,不要随便更换晶振频率。

串口通信,会产生波特率偏差。如果当做时钟,显示时分秒,那么,刚刚经过10592小时,就显示过去了12小时。如果用于测试按键的时间,需要精确,那就应该把你的“示值”,除以12,再乘以10592,这就是准确的时间。

M晶振用于串口通信的话,波特率误差太大了,换成10592M之类的会更好。

8m晶振波特率误差(8mhz晶振)-第1张图片-bevictor伟德官网-伟德国际官网登录入口

内部8M晶振时,串口波特率最大只能是2400吗

为了保证有效通讯,根据电、传输介质等的物理特性结合串口设备使用的要求,确定RS232最大传输速率只能是115200,然后逐级二分得到57600,28800,19200……为适应这些速率,设计相应的晶振频率。这是由电信线路特性决定的。

只能选取2400, 0xf3,有一个小技巧,你也可以使用倍频,把PCON| = 0x80,然后使用4800.计算出来的值和2400一样,但是快了一倍。如果你的晶振是10592Mhz的话。也慢不到哪里去,普通需求还是可以满足的。但是他的优势体现在你使用UART串口的时候,很多波特率可以选择。所以就很nice。

一般最大115200,建议不要尝试更高波特率,我曾经设置一个CDMA modem波特率为115200以上,好像是23XXXX,结果再也无法连上,不得不返厂恢复,分析,可能是PC的串口硬件不支持那么高波特率,虽然设备支持。

一般而言,波特率的高低与串口传输距离和使用环境有关,距离越远,波特率一般越低,使用环境干扰越大,波特率越低,如果是在同一块板上的串口通讯,可以做到很高,比如115200bps,另外最好使用10592M之类的晶振,这样标准波特率可以做到没有误差。

看看我给你发的这个图,肯定能解决你的问题。SMOD=1,用2400的就没什么问题了,误差不要10%一般都没问题。

在你这个情况下,我可以负责的告诉你,12M的晶振波特率只能是2400,9600的情况下会有8%的误差,所以会产生乱码,而2400波特率的情况下误差是0.16%,这样就不会产生乱码了,TH1和TL1都设为F3,你再试试。

单片机或ARM外部晶振最大值由什么因素决定的?比如说Freescale...

1、原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。

2、第二是时钟方案,也就是是否使用锁相环、使用外部晶振还是内部晶振等问题。新一代的单片机,如飞思卡尔的HCS08系列单片机,片内带有内部晶振,可以直接作为时钟源。

3、集成度高,体积小,可靠性好 单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。而且,由于单片机体积小,易于采取电磁屏蔽或密封措施,适合于在恶劣环境下工作。控制能力强 单片机指令丰富,能充分满足。工业控制的各种要求。

波特率与晶振的关系?

1、M是个变态的数字 是因为在串口通信中 你需要计算出波特率。而波特率必须是个整数 为了使波特率是个整数 所以 晶振就必须是10592的。一般来说 10592是个很常用的晶振。

2、晶振的频率决定了波特率,1/9600=16*2^smod*12*(256-x)/fosc ,这是计算公式。keil中只是进行软件仿真,你当然可以随便设置了,而真正的波特率的大小就要看你硬件的东西以及程序中的设置。

3、波特率跟晶振有关系的,51的印象中是24M最高频率;这个在单品及型号上会有;如果你是要进行串口通信可参考下下面的;(以下内容非本人所写)串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。

标签: 8m晶振波特率误差

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~