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