ArduinoとCAN-BUSShield V2を用いてCAN通信をしています。
CAN.sendMsgBuf()関数でCAN信号の送信に連続して失敗すると、CAN_SENDMSGTIMEOUTが3回、以降はCAN_GETTXBFTIMEOUTとなります。
CAN_SENDMSGTIMEOUTの際は送信バッファに溜まるため、通信相手が存在すると自動的に再送されます。
この自動的に送信することをやめるために送信バッファを関数で空にしたいです。
空にする方法は3つまとめてでも1つづつでも構いません。どうしたらいいでしょうか?
Arduino
1#include <mcp_can.h> 2#include <mcp_can_dfs.h> 3 4MCP_CAN CAN(9); 5 6void setup() 7{ 8 Serial.begin(57600); 9 whie(CAN_OK != CAN.begin(CAN_500KBPS, MCP_16MHz)) 10 { 11 Serial.println("CAN_NG"); 12 } 13 14 byte buf[8]; 15 for(byte i = 0; i < 4; i++) 16 { 17 if(CAN_OK != CAN.sendMsgBuf((0x100 + i), 0, 8, buf)) 18 { 19 //送信バッファを1つ空にする関数 20 } 21 } 22 23 //送信バッファを全て空にする関数 24 25} 26 27void loop() 28{ 29} 30
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。