首先想说单片机的12M远不如11.0592M,其问题之大折磨了我一下午 此时的误差率达到了7%!!!在这样的误差下所传输的都变成了乱码!!! 以上就是单片机在12MHz下的一个值得注意的问题,问题不大,但如果不知道对初学者来说确实一时想不明白。 ps:对于以上波特率计算、虚拟串口的辅助软件可以在评论区留下邮箱,我会私发。单片机串口通讯在12MHz的问题
我使用的的晶振是12Mhz,虽然我知道12Mhz在计算波特率时会有误差,但我没想到这个误差会有上限(其实应该想到的)。超过上限,误差太大会有问题。
下面我详细说一下我遇到的问题,关于波特率的计算公式这里就省去。
我以定时器1方式二计时,PCON=0(波特率不翻倍),为前提来展示。
在2400波特率下,一起都是那么美好: TMOD=0x20; TH1=0xF3; TL1=0xF3; SCON=0X50; PCON=0X00; TR1=1; ES=1; EA=1;
通过软件计算此时误差为0.16%,这是的我还没有意识到问题的严重
然而当我把波特率调到4800时一切都变了: TMOD=0x20; TH1=0xF9; TL1=0xF9; SCON=0X50; PCON=0X00; TR1=1; ES=1; EA=1;
而这种问题在11.0592MHz下根本不会出现,原因很简单就是没有误差。
总结:单片机在12MHz晶振下,只能使用2400及以下波特率,不能使用4800及以上,否则会误差太大产生乱码。
ok,多谢看完。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算