打印

在这段时间内不能做其它事情了?

[复制链接]
361|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heweibig|  楼主 | 2017-5-6 22:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
shimx| | 2017-5-6 22:45 | 只看该作者
我也对这个困惑过,必须等MCU发送完成吗?

使用特权

评论回复
板凳
heweibig|  楼主 | 2017-5-6 22:49 | 只看该作者
是啊,而在接收多个字节的时候,我到是比较容易想通,因为收到一个字节后,直到下一个字节收完为止,这段时间MCU可以去做其它事情,但是发送的时候是什么样的机制呢?

使用特权

评论回复
地板
wuhany| | 2017-5-6 22:51 | 只看该作者

可以开个缓冲用中断发.

使用特权

评论回复
5
shimx| | 2017-5-6 22:55 | 只看该作者

发送和接收都有相应的中断标志位,发送完自动值位,查询相应标志位即可。

使用特权

评论回复
6
jiaxw| | 2017-5-6 23:00 | 只看该作者
所谓发送就是把要发送的数据写入SBUF
所谓接受就是从SBUF读取数据

使用特权

评论回复
7
spark周| | 2017-5-6 23:03 | 只看该作者
是的,这些指令占用的时间太少了 无非就是一个或者几个机器周期嘛
当然之前会有一些配置的操作

使用特权

评论回复
8
shimx| | 2017-5-6 23:09 | 只看该作者
至于是低波特率还是高波特率并不会影响这个操作

使用特权

评论回复
9
liliang9554| | 2017-5-6 23:13 | 只看该作者

是,数据串行出去或者串行接受的过程都是有硬件本身完成的 完成之后会置位相关的标志位

使用特权

评论回复
10
午夜粪车| | 2017-5-6 23:15 | 只看该作者

如果中断允许会引起相关中断
编程的时候要合理安排任务的运行

使用特权

评论回复
11
zhaoxqi| | 2017-5-6 23:18 | 只看该作者

避免发送数据流时不要搞得不连续

使用特权

评论回复
12
huangchui| | 2017-5-6 23:20 | 只看该作者
是,还得避免接受数据流时不要造成数据覆盖

使用特权

评论回复
13
jiajs| | 2017-5-6 23:22 | 只看该作者
波特率太低的话,可以用中断发。

使用特权

评论回复
14
zhenykun| | 2017-5-6 23:28 | 只看该作者

可以考虑为中断方式完成串口通信,这样虽然是连续发送,MCU还是可以完成其他的指令的。

使用特权

评论回复
15
jlyuan| | 2017-5-6 23:32 | 只看该作者
没有必要一直等嘛

使用特权

评论回复
16
heweibig|  楼主 | 2017-5-6 23:34 | 只看该作者

多谢六楼七楼一系列的经验

使用特权

评论回复
17
yszong| | 2017-5-6 23:37 | 只看该作者
把数据放到UART的发送缓存器中后就干其他的事的呗。,,9600的波特率的时间是够的。

使用特权

评论回复
18
heweibig|  楼主 | 2017-5-6 23:42 | 只看该作者
哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

粉丝