J1939之ECU模擬器製作二

調試板子半天,遇到很多問題,寫個總結
1.直接在網上收集FreeRTOS在STM32F2上移植軟件
2.將下載的工程軟件刪除多餘文件,只運行一個任務,每1秒鐘掛起一次,發現任務掛起時間不只1秒,反反覆覆查看代碼,沒有發現問題,網上找到相關問題,大部都是設置時鐘問題,知道根源肯定是時鐘問題,還是踏踏實實去借一個示波器來分析問題,發現外部晶振有問題

3.修改成使用內部時鐘,最高爲64Mhz
4.調試打印輸出,發現設置成115200,但正常通信是57600----還是因爲使用HSI問題引起的
5.採用TIM2進行計數,每500us產生一次中斷,示波器一量,發現實際是578us產生一次中斷----還是因爲使用HSI問題引起的

6.調試CAN模塊,用了82C250收發器,採用官方Demo例程,設置CAN波特率爲250k,直接採CAN卡工具進行接收和發送,提示CAN通信錯誤,這樣的問題在預料之中,只能一步一步來處理
(1)設置CAN爲LoopBack,不管設置什麼樣的波特率,CAN接收中斷都正常,採用示波器看看此時波特率爲280k,還是使用HSI問題引起的,將參數進行修改,以達到250k
(2)設置CAN爲正常模式,軟件每1秒往外發一包擴展幀,用CAN卡工具進行接收,嘿嘿,CAN卡接收正常,說明CAN模塊發送正常
(3)用CAN卡給MCU發送一包數據,但MCU沒有收到數據,並且CAN卡提示出錯,說明發出來的數據,接收端不處理,查查各線路,沒有問題,示波器測量發現CAN總線上一直有數據,有可能是MCU沒有將數據採集走
(4)修改採集點,查資料說250k波特率,採集點要在83%以上,將採集點設置成86.7%,立馬正常接收數據
(5)到此,CAN模塊及FreeRTOS移植正常,往後開始整理軟件及添加J1939協議

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章