打印

串口发送数据的时间

[复制链接]
3106|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Garen2|  楼主 | 2016-2-26 20:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用430串口发送数据给舵机,我们一个工作周期20ms,给舵机发送数据11个字节,波特率用9600

那么传送数据时间=11*8/9600=9.17ms

问题是,430的发送时间也是9.17ms么?在线路上的传送时间是9.17ms没错。

现在我理解的是:数据我是用循环中断的方式发送的。430的TXbuff是一个字节的,所以只能一个字节一个字节的发,在发送这11个字节的9.17ms期间,cpu干不了其他工作,只能串口发送数据吗?

如果是pc机串口发送11字节的话,由于电脑缓存大,11个字节准备好后就可以干其他的事了吗?9.17ms其他时间可以做其他工作。

相关帖子

沙发
Ryze| | 2016-2-26 20:44 | 只看该作者
你计算的时间是发送的时间,发送由串口模块硬件完成,不占用cpu时间。你需要做的只是把数据放到发送缓冲区。

使用特权

评论回复
板凳
Varus| | 2016-2-26 21:08 | 只看该作者
当循环发送的时候,可以打开发送完成中断,来往发送缓冲区填数据。不占用cpu

使用特权

评论回复
地板
Snow7| | 2016-2-26 21:27 | 只看该作者
430的发送缓冲区只有一个字节,也就是说在发着一个字节的时间内cpu可以干其他的

使用特权

评论回复
5
android2| | 2016-2-26 21:52 | 只看该作者
一般是当发送完成后,进入中断。发送的这段时间,MCU就可以做其他任务

使用特权

评论回复
6
firstblood| | 2016-2-27 12:43 | 只看该作者
串口发送的时间是可以根据你设置的波特率来计算的。

使用特权

评论回复
7
mmbs| | 2016-2-28 23:14 | 只看该作者
发送数据不使用中断就可以

使用特权

评论回复
8
mmbs| | 2016-2-28 23:15 | 只看该作者
否则影响处理数据的大程序,不要写在中断里面

使用特权

评论回复
9
lihuami| | 2016-2-29 11:33 | 只看该作者
你做一个缓冲的数组

使用特权

评论回复
10
lihuami| | 2016-2-29 11:34 | 只看该作者
或者电脑上另外建一条线程做接收

使用特权

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

本版积分规则

153

主题

734

帖子

3

粉丝