ts2000 发表于 2017-1-12 10:52:54

串口不需要传输很多数据吧?加不加无所谓。

moyanming2013 发表于 2017-1-12 11:49:17

morecool 发表于 2017-1-12 09:29
雖然可以使用DMA實現,但是如有DMA被高級別的用戶佔用總線的話,可能會導致數據接收不可靠。
如果有自己的 ...

一次串口通信时往往采用中断+查询方式,即使对于FIFO来说“中断+查询”都是最快的方式可能。这可能就削弱了FIFO的优点了。
此时也会有总线占用的问题。

morecool 发表于 2017-1-12 13:11:58

moyanming2013 发表于 2017-1-12 11:49
一次串口通信时往往采用中断+查询方式,即使对于FIFO来说“中断+查询”都是最快的方式可能。这可能就削弱 ...

頻繁的中斷對於資源的開銷是比較大的,特別是高波特率和數據量較大的情況下更為突出。
FIFO模塊存在于串口模塊中,接收到的數據并不通過APB總線傳輸到FIFO中,而是直接由串口模塊傳輸,如果需要設計成通過APB總線傳輸,那與DMA傳輸方式一樣了,FIFO功能也就沒有了存在的必要。

morecool 发表于 2017-1-12 13:16:56

本帖最后由 morecool 于 2017-1-12 13:19 编辑

ts2000 发表于 2017-1-12 10:52
串口不需要传输很多数据吧?加不加无所谓。
如果系統存在多個需要實時響應的中斷時,FIFO的存在可以減輕系統負擔和提高通訊的可靠性。
要說因為STM32沒有FIFO模塊就成為了敗筆,那有點言過其實了。如果真的出現上面說的那種情況,只能通過優化程式或選擇更高主頻的處理器來解決問題了。

wolfgang2015 发表于 2017-1-12 13:43:09

增加FIFO增加了硬件及控制,还是DMA通用些~~~~~。
不要什么都往弹片机里装,硬件、代码都要重写,无形中增加了使用成本

moyanming2013 发表于 2017-1-12 15:17:41

morecool 发表于 2017-1-12 13:11
頻繁的中斷對於資源的開銷是比較大的,特別是高波特率和數據量較大的情況下更為突出。
FIFO模塊存在于串 ...

FIFO下的“中断+查询”或进入中断后的接收数据,为了避免事故或保证数据完整性,可能会关闭其它中断,此时就是在占用总线--串口的速率还是非常低效的而占用了高效的总线。
FIFO总是需要中断的,高频中断下FIFO也会显得“力不从心”,此时DMA自然是最好的选择。
FIFO有些显得“高不成低不就”,如鸡肋,干脆去掉了。

lzts 发表于 2017-1-13 19:29:14

我就不投票了.有也可,没有也行(反正软件也可解决).远远达不到败笔的程度

zbber 发表于 2017-1-13 20:19:22

我觉得芯片只是个工具,既然你选择了这样的工具,就要去灵活应用它

五哥1 发表于 2017-1-14 14:22:24

我看木有必要

cldym 发表于 2017-1-15 13:10:09

多一个fifo会更好,使用更方便;
页: 1 [2] 3
查看完整版本: STM32的串口无FIFO真是一大败笔