主题:串口发送数据也是采用中断的方式么? 共有29659人关注过本帖 |
---|
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个字节数据发送出去。
|
|
单帖管理 | 引用 | 回复 |