STM32H743+CubeMX-学习FDCAN控制器上的TxFIFO
文章目錄
- 一.TxFIFO設(shè)為1所帶來的問題
- 1.1 代碼
- 1.2 CAN分析儀
- 二. 解決問題的方法
- 2.1 STM32CubeMX
- 2.2 CAN分析儀
一.TxFIFO設(shè)為1所帶來的問題
在STM32F103,STM32F407上面的CAN控制器,到了STM32H743上升級(jí)成FDCAN控制器。瀏覽了正點(diǎn)原子,安富萊,野火的STM32H7教程,都沒有介紹FDCAN如何使用。關(guān)于FDCAN相關(guān)的教程,廣州硬石電子科技做得比較好。但是,硬石科技的FDCAN例程在實(shí)際項(xiàng)目上直接使用的話,會(huì)有一些問題等著你發(fā)現(xiàn)。
硬石科技將FDCAN控制器的TxFIFO設(shè)置為1,相當(dāng)于取消FIFO的功能。
以下圖片摘自硬石科技的H743教程:
1.1 代碼
LED5_Handler()會(huì)被FreeRTOS系統(tǒng)每隔1S調(diào)用一次。實(shí)際上,代碼的目的是發(fā)送5條CAN報(bào)文,CAN_ID分別是0x181,0x182,0x183,0x184,0x185。
1.2 CAN分析儀
通過CAN分析儀看到的結(jié)果是: "每隔1S時(shí)間,STM32H743只是發(fā)送了CAN_ID為0x181的CAN報(bào)文,并不是5條CAN報(bào)文。"
導(dǎo)致這個(gè)結(jié)果的原因是TxFIFO被設(shè)為1。
二. 解決問題的方法
2.1 STM32CubeMX
根據(jù)HAL庫的源碼可以看到,Tx Fifo Queue Elmts Nbr的范圍是: 0 ~ 32.
2.2 CAN分析儀
代碼不用修改,直接觀察CAN分析儀的情況。
從上圖可以看到,CAN分析儀每隔1S時(shí)間,收到CAN_ID為0x181,0x182,0x183,0x184,0x185的5條CAN報(bào)文。
問題解決了,代碼的目的達(dá)到了。
總結(jié)
以上是生活随笔為你收集整理的STM32H743+CubeMX-学习FDCAN控制器上的TxFIFO的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CAN总线技术 | CAN脱颖而出的“秘
- 下一篇: grafana mysql插件_graf