21ic电子技术开发论坛
标题:
单片机串口通讯
[打印本页]
作者:
zhuhuis
时间:
2011-2-25 20:43
标题:
单片机串口通讯
当串口通讯发送多个字节的时候 (比如根据通讯协议一次要发送几十个字节)
而通讯baud又很低,比如只有600bps,那么在发送的过程中,MCU是不是
在这段时间内不能做其它事情了?
作者:
宋倩2010
时间:
2011-2-25 20:46
我也对这个困惑过,必须等MCU发送完成吗?
作者:
zhuhuis
时间:
2011-2-25 21:06
是啊,而在接收多个字节的时候,我到是比较容易想通,因为收到一个字节后,直到下一个字节收完为止,这段时间MCU可以去做其它事情,但是发送的时候是什么样的机制呢?
作者:
tian111
时间:
2011-2-25 21:31
可以开个缓冲用中断发.
作者:
gongche
时间:
2011-2-25 21:41
发送和接收都有相应的中断标志位,发送完自动值位,查询相应标志位即可。
作者:
huwr
时间:
2011-2-25 21:49
所谓发送就是把要发送的数据写入SBUF
所谓接受就是从SBUF读取数据
作者:
huanghuac
时间:
2011-2-25 21:55
是的,这些指令占用的时间太少了 无非就是一个或者几个机器周期嘛
当然之前会有一些配置的操作
作者:
huwr
时间:
2011-2-25 22:12
至于是低波特率还是高波特率并不会影响这个操作
作者:
huanghuac
时间:
2011-2-26 00:51
是,数据串行出去或者串行接受的过程都是有硬件本身完成的 完成之后会置位相关的标志位
作者:
huwr
时间:
2011-2-26 10:12
如果中断允许会引起相关中断
编程的时候要合理安排任务的运行
作者:
wenfen
时间:
2011-2-26 10:30
避免发送数据流时不要搞得不连续
作者:
huanghuac
时间:
2011-2-26 10:46
是,还得避免接受数据流时不要造成数据覆盖
作者:
冰清玉洁
时间:
2011-2-26 11:43
波特率太低的话,可以用中断发。
作者:
zhuhuis
时间:
2011-2-26 12:13
多谢六楼七楼一系列的经验
作者:
鸽子叶子
时间:
2011-2-26 16:03
好
作者:
mikehui
时间:
2011-2-26 17:39
学习中,谢谢
欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/)
Powered by Discuz! X3.5