找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机串口通讯程序波特率只能是4800,其他的波特率就会出错

查看数: 4787 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-10-13 17:05

正文摘要:

小弟入门单片机不久,在写一个小程序,目标是从单片机从串口发送数据给单片机,单片机接受数据放进数组,新数据来到后和之前数组中的数据进行比较,如果相同不进入数组,不相同就进入数组,最后输出数组中元素的个数 ...

回复

ID:883242 发表于 2023-6-20 13:15
这个问题搜旧帖子就行。BBS比Q群好太多的优点就在于此。
http://www.51hei.com/bbs/dpj-150703-1.html
ID:744809 发表于 2023-6-19 15:07
188610329 发表于 2023-6-19 13:00
和12M 没什么关系,我12M 用57600一样没事
问题的关键是他中断里有了:
                SBUF = count; ...

STC89C51 12M用定时器0/定时器1最多只能用4800,11.0592M能用9600,更高的要22.1184M才行了。当然用STC8H8K、STC15\STC12等系列较新的51单片机,可以更快速率通信。STC89C51单片机用T2定时器,11.0592M的晶振可以用115200波特率。
ID:624769 发表于 2023-6-19 13:00
joyb 发表于 2023-6-19 10:14
单片机用12M晶振,9600误差太大,4800还可以

和12M 没什么关系,我12M 用57600一样没事
问题的关键是他中断里有了:
                SBUF = count;
                while(!TI);
这个东西,说实话,中断里放了这个 他 4800 能用应该已经偷笑了。
ID:1064915 发表于 2023-6-19 10:14
单片机用12M晶振,9600误差太大,4800还可以
ID:123289 发表于 2017-10-14 19:25
串口中断未规划得好。
中断收到一个字节后就退出来。
ID:82765 发表于 2017-10-13 22:32
提示: 作者被禁止或删除 内容自动屏蔽

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表