[51单片机] c8051f021单片机串口发送接收问题(UART0)

[复制链接]
6067|30
zxb1717 发表于 2015-5-6 09:22 | 显示全部楼层
中断里只负责接收数据,可以用起始字节和长度作为一个命令接收是否完毕的根据,然后在主循环里再判断整个命令的准确性,千万不要在中断中即接收又发送,防止收发冲突。
yhn1973 发表于 2015-5-6 09:30 | 显示全部楼层
15056048066 发表于 2015-5-5 19:25
现在问题感觉是,如果串口助手一次发送6个字节过来,uart0的中断只能进去3次,好像处理速度跟不上。单个 ...

9600波特率都不行,怎么还会是处理速度问题
hnkf118 发表于 2015-5-6 10:37 | 显示全部楼层
建议你 要不全部用中断模式,要不就全部是查询方式处理。
hnkf118 发表于 2015-5-6 10:46 | 显示全部楼层
建议弄个软件FIFO, 这样弄下,就不会为发愁了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 15056048066 发表于 2015-5-6 16:43 | 显示全部楼层
mmuuss586 发表于 2015-5-5 21:50
中断程序搞这么长,尽量短;
我们以前用C8051F,115200波特率,发4K的数据都没事; ...

原因出在了初始化那,uart0通讯方式之前选择了方式3,现在改为方式1并验证了停止位,发送字符串也正常了。
 楼主| 15056048066 发表于 2015-5-6 16:45 | 显示全部楼层
zxb1717 发表于 2015-5-6 09:22
中断里只负责接收数据,可以用起始字节和长度作为一个命令接收是否完毕的根据,然后在主循环里再判断整个命 ...

恩,3q.发现原因出在了初始化那,uart0通讯方式之前选择了方式3,现在改为方式1并验证了停止位,发送字符串也正常了。
 楼主| 15056048066 发表于 2015-5-6 16:46 | 显示全部楼层
yhn1973 发表于 2015-5-6 09:30
9600波特率都不行,怎么还会是处理速度问题

恩,不是速度的问题,通讯方式改为8位并验证停止位就可以啦。
 楼主| 15056048066 发表于 2015-5-6 16:47 | 显示全部楼层
hnkf118 发表于 2015-5-6 10:37
建议你 要不全部用中断模式,要不就全部是查询方式处理。

恩,3q。问题在通讯方式设置上,改为8位并验证停止位就可以。
 楼主| 15056048066 发表于 2015-5-6 16:48 | 显示全部楼层
hnkf118 发表于 2015-5-6 10:46
建议弄个软件FIFO, 这样弄下,就不会为发愁了。

恩,3q,原因是出在方式选择上了。
 楼主| 15056048066 发表于 2015-5-6 16:54 | 显示全部楼层
最后分享一个在网上看到的有关uart多机通讯的**,感觉讲的不错。
还不能发网址,分享个标题“51单片机串口通信的发送与接收 字符串(转)”。

评分

参与人数 1威望 +1 收起 理由
jforu + 1 这个有用

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部