主題:串口發(fā)送數(shù)據(jù)也是采用中斷的方式么? 共有33566人關(guān)注過本帖 |
---|
shtupc |
1樓 |
串口發(fā)送數(shù)據(jù)也是采用中斷的方式么? Post By:2007-7-21 14:51:00 [只看該作者]
我知道ETR100E的串口接收數(shù)據(jù)是采用中斷的方式,現(xiàn)在我有約1000字節(jié)的數(shù)據(jù)需要通過串口發(fā)送,如果用9600的波特率的話大約需要1秒鐘,想問一下是不是在這1秒鐘之內(nèi)無法干其它事情了,我設(shè)計(jì)的板子此時(shí)還要定期采樣呢,有沒有好的解決辦法?
|
|
單帖管理 | 引用 | 回復(fù) |
x10 |
2樓 |
Post By:2007-7-21 22:30:00 [只看該作者]
串口控制器16C550以9600bps發(fā)送1000個(gè)字節(jié)確實(shí)需要1秒,但CPU中斷只是把數(shù)據(jù)放入16C550的FIFO中,大概每個(gè)字節(jié)的開銷在幾個(gè)us水平,即CPU開銷應(yīng)在5%左右,肯定有大量時(shí)間完成別的任務(wù)。
|
|
單帖管理 | 引用 | 回復(fù) |
shtupc |
3樓 |
Post By:2007-7-23 13:13:00 [只看該作者]
請(qǐng)問16C550的FIFO有多少字節(jié),如果不是很大的話不CPU也不能一下把1000字節(jié)的數(shù)據(jù)全部放進(jìn)去,是不是也要?jiǎng)澮恍⿻r(shí)間呢?
|
|
單帖管理 | 引用 | 回復(fù) |
zhl |
4樓 |
Post By:2007-7-24 9:38:00 [只看該作者]
16C550的FIFO接收和發(fā)送各16個(gè)字節(jié),可在提供的串口驅(qū)動(dòng)程序中,定義串口的接收BUF,發(fā)送BUF的大小,比如1500。應(yīng)用程序可以一次將1000個(gè)字節(jié)放入發(fā)送BUFF中,然后啟動(dòng)發(fā)送中斷,中斷服務(wù)程序?qū)⒆詣?dòng)將這1000個(gè)字節(jié)數(shù)據(jù)發(fā)送出去。
|
|
單帖管理 | 引用 | 回復(fù) |