打印

串口问题

[复制链接]
1294|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
crazy2012|  楼主 | 2013-12-24 19:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 crazy2012 于 2014-4-6 23:49 编辑

现在采用4800bps的波特率发送数据。那么发送一个字节(8bit)的数据,包括起始位和停止位,大概也就是2ms的时间。那么在这个2毫秒的时间,cpu是什么状态,可以执行其他指令不可以。



另外一般单片机都会有一个数据发送完成标志位,比如51单片机串口发送完一个字节的数据TI位就会置1。从开始写数据到BUFER,到发送完成TI位置1,这段时间是否等于前面所提到的4800bps波特率发一个字节数据,大概用时2ms呢。


我想了想,在我印象当中,一般发送一个字节的数据是不会用这么长时间(2ms)的。应该是采用类似FIFO这样的缓冲结构来完成数据的发送的。


相关帖子

沙发
hustmingtian| | 2013-12-24 19:24 | 只看该作者
这个时候CPU可以做别的事情,因为你已经启动了串口数据发送,这个过程是串口外设单独完成的,和cpu无关,串口发送完成后,将发送完成标志置位,cpu是不干涉的,这期间cpu做什么由你的程序说了算,但是有一点,切不可在串口外设没有发完的情况下,再一次写入串口发送buf,这样的话,前面一字节就会出错!!!

使用特权

评论回复
板凳
chunyang| | 2013-12-24 21:24 | 只看该作者
处理器在执行串口发送指令后会立刻执行下一条指令。

使用特权

评论回复
地板
受不了了| | 2013-12-24 22:02 | 只看该作者
楼主想得蛮仔细的,赞一个

使用特权

评论回复
5
ningling_21| | 2013-12-24 22:31 | 只看该作者
如果连续发送一串字符,一般都是在等待...
如果用了操作系统,就可以干点别的...

使用特权

评论回复
6
wf.yang| | 2013-12-25 11:18 | 只看该作者
hustmingtian 发表于 2013-12-24 19:24
这个时候CPU可以做别的事情,因为你已经启动了串口数据发送,这个过程是串口外设单独完成的,和cpu无关,串 ...

说得非常清楚,谢谢!

使用特权

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

本版积分规则

150

主题

939

帖子

9

粉丝