主题:串口发送数据也是采用中断的方式么?

  共有21559人关注过本帖    
shtupc
1楼


串口发送数据也是采用中断的方式么?  发帖心情 Post By:2007-7-21 14:51:00   [只看该作者]

我知道ETR100E的串口接收数据是采用中断的方式,现在我有约1000字节的数据需要通过串口发送,如果用9600的波特率的话大约需要1秒钟,想问一下是不是在这1秒钟之内无法干其它事情了,我设计的板子此时还要定期采样呢,有没有好的解决办法?

  单帖管理 | 引用 | 回复 回到顶部
x10
2楼


  发帖心情 Post By:2007-7-21 22:30:00   [只看该作者]

串口控制器16C550以9600bps发送1000个字节确实需要1秒,但CPU中断只是把数据放入16C550的FIFO中,大概每个字节的开销在几个us水平,即CPU开销应在5%左右,肯定有大量时间完成别的任务。

  单帖管理 | 引用 | 回复 回到顶部
shtupc
3楼


  发帖心情 Post By:2007-7-23 13:13:00   [只看该作者]

请问16C550的FIFO有多少字节,如果不是很大的话不CPU也不能一下把1000字节的数据全部放进去,是不是也要划一些时间呢?

  单帖管理 | 引用 | 回复 回到顶部
zhl
4楼


  发帖心情 Post By:2007-7-24 9:38:00   [只看该作者]

16C550的FIFO接收和发送各16个字节,可在提供的串口驱动程序中,定义串口的接收BUF,发送BUF的大小,比如1500。应用程序可以一次将1000个字节放入发送BUFF中,然后启动发送中断,中断服务程序将自动将这1000个字节数据发送出去。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

串口发送数据也是采用中断的方式么?

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: