/*************************************************************/
/* 中断接收函数 */
/*************************************************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt CAN_receive(void)
{
if(MSCAN0GetMsg(&msg_get))
{
// 接收新信息
if(msg_get.id == ID1 && (!msg_get.RTR))
{
datain=0X01;
}
if(msg_get.id == ID2 && (!msg_get.RTR)) { datain=0X02; } }
else
{
for(;;);
}
}
#pragma CODE_SEG DEFAULT
下面这个是接收数据。void play_data(void) { unsigned char l; write_command(0x8A); for(l=0;l<msg_get.len;l++) write_Data(msg_get.data[l]);}我上位机100mm发一次数据,连续发送多个ID,但是我的这个中断,每次只能接收到一个ID。以前没用到过CAN,请大神们帮忙指点一下。我用的是飞思卡尔MC9S12XEP100
芯片。
一周热门 更多>