8 years, 2 months ago.  This question has been closed. Reason: Duplicate question

特定IDのCAN信号の受信について

こんばんは。

今、CAN通信にて特定のIDのみの受信を試みているのですが、うまくできません。 CanmessageでIDを指定して定義すれば特定のIDを受信できると思っていたのですが違いますでしょうか?

具体的には、以下でID174(16進数)のみを受信しようとしたのですが、めくらめっぽう受信してしまっているようです

  1. include "mbed.h"

Serial pc(USBTX, USBRX);MBED USB CAN vcan(p30, p29);can

double wt=0.01; int inchk; int inchar;

int vcaninchk; int vcaninchar;

int main() { pc.baud(460800);bps pc.format(8, Serial::None, 1);bits,parity,stop_bit vcan.frequency(500000); CANMessage id174rx(372 , CANStandard);0x174 = 372

while(1) {

vcaninchk = vcan.read(id174rx); if(vcaninchk == 1){ pc.printf("\nID174 %d %d %d,%d,%d,%d,%d,%d,%d,%d",vcaninchk,id174rx.id,id174rx.data[0],id174rx.data[1],id174rx.data[2],id174rx.data[3],id174rx.data[4],id174rx.data[5],id174rx.data[6],id174rx.data[7]); }

wait(wt);

}

}

----テスト結果

ID174 1 381 80,51,64,12,128,0,128,0

ID174 1 381 80,51,64,12,128,0,128,0

ID174 1 1376 0,0,0,4,127,192,128,0

ID174 1 381 80,51,64,12,128,0,128,0

ID174 1 381 80,51,64,12,128,0,128,0

ID174 1 398 0,0,0,0,241,76,28,20

ID174 1 381 80,51,64,12,128,0,128,0

ID174 1 381 80,51,64,12,128,0,128,0

ID174 1 398 0,0,0,0,241,76,27,20

ID174 1 381 80,51,64,12,128,0,128,0

ID174 1 381 80,51,64,12,128,0,128,0

ID174 1 381 80,51,64,12,128,0,128,0

ID174 1 398 0,0,0,0,241,76,25,20

ID174 1 381 80,51,64,12,128,0,128,0

本件、世界のお友達から回答が来まして、解決しました。

https://developer.mbed.org/questions/74230/about-ID-selectable-CAN-receive/

posted by KOJI DOHI 11 Sep 2016