我們希望用到的CAN波特率有5K、10K、50K、500K、1000K等”。CAN波特率設(shè)置不正確將導(dǎo)致CAN無(wú)法通信.
如果在CAN總線上產(chǎn)生了錯(cuò)誤,則開(kāi)啟僅聽(tīng)模式(在僅聽(tīng)模式中SJA1000不能發(fā)送信息也不能產(chǎn)生錯(cuò)誤幀),軟件會(huì)嘗試下一個(gè)波特率,直到能夠正常接收數(shù)據(jù),即產(chǎn)生接收中斷,此時(shí)把波特率設(shè)定的值BTR0、BTR1寫入到EEPROM,重新設(shè)定工作模式到正常模式。下次上電首先讀取EEPROM的波特率,如果總線錯(cuò)誤再自動(dòng)檢測(cè)波特率。
需要特別注意的是,我一開(kāi)始調(diào)試的時(shí)候,1M的波特率始終不能鎖定,但是其他波特率都正常,發(fā)現(xiàn)檢測(cè)到1M波特率的時(shí)候,會(huì)產(chǎn)生總線錯(cuò)誤中斷和接收中斷,為什會(huì)總線錯(cuò)誤呢?答案不在軟件上!我使用的是PCA82C250的CAN收發(fā)器,在高速模式工作下,要使8腳(Rs)接地,我之前是接了47k電阻到地的,工做在斜率控制模式,取下電阻,直接把8腳接地,問(wèn)題解決。
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版