主題:串口發送數據也是采用中斷的方式么? 共有33586人關注過本帖 |
---|
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個字節數據發送出去。
|
|
單帖管理 | 引用 | 回復 |