S32K116调试记录(2)CAN接口调试
1. 配置CAN 管腳
2. 修改時鐘為外部時鐘
????? 樣機使用48Mhz外部晶振,之前這里選的是內部時鐘導致CAN一直不通
對應原理圖如下:
修改如下:
3. 使用SDK中的CAN示例代碼,發現CAN發送一直異常
現象: 單步CAN發送一幀數據,使用CANPro接收會一直接收同一幀數據,停不下來,
???????? 而且發現CAN沒有進入到發送完成中斷里面去
出現CAN發送異常的SDKs版本如下:
原因:?
?????? 工程中使用的SDKs版本不一樣導致的,示例代碼中對應的是S32K116的開發板而我們用的是116的樣機板,
?????? 所以SDKs的版? 本選擇有一定不一樣
解決辦法如下:
????? 1.重新創建工程
????? 2.選擇SDKs時選擇最新的版本 2.9.2版本,如下
4. SDKs版本選擇以及示例代碼選擇建議
???? 以后推薦就用SDKv2.92版本的 (其他版本指不定出啥問題)
5. CAN 發送和接收 中斷模式和阻塞模式調試區別
6. CAN過濾器使用方法
a .使用MB的方式
??? (1) 每個MB buffer對應一個can id, 目前使用的此方法,測試正常。
??? (2) 注意必須CAN RX api必須使用中斷模式(多次觸發中斷正常),不能使用阻塞模式(測試只能觸發一次后續觸發不了)
???? (3)***CAN_Receive接口每個都RX_MAILBOX都必須要對應***
??? (4)另外: 接收中斷處理完后,必須再重起所以RX_MAILBOX buffer的CAN_Receive
b.使用fifo的方式
????? 使用FIFO的方式,設置濾波和接收buffer.
????? 但是使用此方法一直會有各種數據接受異常,所以未調通,一直使用上面方面
總結
以上是生活随笔為你收集整理的S32K116调试记录(2)CAN接口调试的全部內容,希望文章能夠幫你解決所遇到的問題。