關於MCP2515幀連發 多發的坑

2021-07-24 23:49:26 字數 494 閱讀 8870

工作中的乙個專案讓我接觸到了mcp2515這個can控制器晶元,其低廉的**讓我毫不猶豫的選擇了它,然而在使用過程中我發現我遇到了乙個bug,就是在我傳送某幀資料後,匯流排上會莫名其妙的多幾幀一樣的資料,而且相隔時間非常短,在經過一天的折磨後,無意在官方社群**找到了這個帖子:

裡面提到了乙個官方的an文件,裡面的內容大致是:在使用writebyte(txb0ctrl,0x08) 這種方式觸發資料傳送後,必須在資料傳送之前拉高cs埠,否則會造成資料多發的現象。

可是由於我的硬體原因,我並不能滿足這一要求,文件裡還給出了其他兩種結決方法:使用mcp2515的幾個特殊指令傳送:

或使用硬體觸發引腳。

然而當我使用這兩種方式時,又發現乙個bug,就是我傳送資料時會發生收不到資料的情況,後經測試,連續寫spi資料後立即觸發傳送,會造成這一現象,需要在連續寫入資料後,在寫入乙個單位元組資料(隨便什麼資料,我的選擇是重新寫入資料長度)才能解決。不知道是不是和我的硬體有關,僅作記錄以後再詳細查詢原因。希望對其他人有幫助。

關於堆的判斷(25 分)

關於堆的判斷 25 分 將一系列給定數字順序插入乙個初始為空的小頂堆h。隨後判斷一系列相關命題是否為真。命題分下列幾種 每組測試第1行包含2個正整數n 1000 和m 20 分別是插入元素的個數 以及需要判斷的命題數。下一行給出區間 10000,10000 內的n個要被插入乙個初始為空的小頂堆的整數...

5 12 關於堆的判斷 25分

將一系列給定數字順序插入乙個初始為空的小頂堆h。隨後判斷一系列相關命題是否為真。命題分下列幾種 每組測試第1行包含2個正整數n le 1000 和m le 20 分別是插入元素的個數 以及需要判斷的命題數。下一行給出區間 10000,10000 1000 0,10 000 內的n個要被插入乙個初始為...

7 3 關於堆的判斷(25 分)

將一系列給定數字順序插入乙個初始為空的小頂堆h。隨後判斷一系列相關命題是否為真。命題分下列幾種 每組測試第1行包含2個正整數n 1000 和m 20 分別是插入元素的個數 以及需要判斷的命題數。下一行給出區間 10000,10000 內的n個要被插入乙個初始為空的小頂堆的整數。之後m行,每行給出乙個...