发新帖我要提问
12
返回列表
打印
[51单片机]

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

[复制链接]
楼主: 15056048066
手机看帖
扫描二维码
随时随地手机跟帖
21
中断里只负责接收数据,可以用起始字节和长度作为一个命令接收是否完毕的根据,然后在主循环里再判断整个命令的准确性,千万不要在中断中即接收又发送,防止收发冲突。

使用特权

评论回复
22
yhn1973| | 2015-5-6 09:30 | 只看该作者
15056048066 发表于 2015-5-5 19:25
现在问题感觉是,如果串口助手一次发送6个字节过来,uart0的中断只能进去3次,好像处理速度跟不上。单个 ...

9600波特率都不行,怎么还会是处理速度问题

使用特权

评论回复
23
hnkf118| | 2015-5-6 10:37 | 只看该作者
建议你 要不全部用中断模式,要不就全部是查询方式处理。

使用特权

评论回复
24
hnkf118| | 2015-5-6 10:46 | 只看该作者
建议弄个软件FIFO, 这样弄下,就不会为发愁了。

QQ图片20150506104557.jpg (170.5 KB )

QQ图片20150506104557.jpg

QQ图片20150506104709.jpg (177.7 KB )

QQ图片20150506104709.jpg

使用特权

评论回复
25
15056048066|  楼主 | 2015-5-6 16:43 | 只看该作者
mmuuss586 发表于 2015-5-5 21:50
中断程序搞这么长,尽量短;
我们以前用C8051F,115200波特率,发4K的数据都没事; ...

原因出在了初始化那,uart0通讯方式之前选择了方式3,现在改为方式1并验证了停止位,发送字符串也正常了。

使用特权

评论回复
26
15056048066|  楼主 | 2015-5-6 16:45 | 只看该作者
zxb1717 发表于 2015-5-6 09:22
中断里只负责接收数据,可以用起始字节和长度作为一个命令接收是否完毕的根据,然后在主循环里再判断整个命 ...

恩,3q.发现原因出在了初始化那,uart0通讯方式之前选择了方式3,现在改为方式1并验证了停止位,发送字符串也正常了。

使用特权

评论回复
27
15056048066|  楼主 | 2015-5-6 16:46 | 只看该作者
yhn1973 发表于 2015-5-6 09:30
9600波特率都不行,怎么还会是处理速度问题

恩,不是速度的问题,通讯方式改为8位并验证停止位就可以啦。

使用特权

评论回复
28
15056048066|  楼主 | 2015-5-6 16:47 | 只看该作者
hnkf118 发表于 2015-5-6 10:37
建议你 要不全部用中断模式,要不就全部是查询方式处理。

恩,3q。问题在通讯方式设置上,改为8位并验证停止位就可以。

使用特权

评论回复
29
15056048066|  楼主 | 2015-5-6 16:48 | 只看该作者
hnkf118 发表于 2015-5-6 10:46
建议弄个软件FIFO, 这样弄下,就不会为发愁了。

恩,3q,原因是出在方式选择上了。

使用特权

评论回复
30
15056048066|  楼主 | 2015-5-6 16:54 | 只看该作者
最后分享一个在网上看到的有关uart多机通讯的**,感觉讲的不错。
还不能发网址,分享个标题“51单片机串口通信的发送与接收 字符串(转)”。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
jforu + 1 这个有用
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则