在线时间0 小时
UID417592
注册时间2013-2-23
NXP金币0
该用户从未签到
新手上路

- 积分
- 0
- 最后登录
- 1970-1-1
|
使用MCSCAN进行通讯,用USB-CAN进行调试,主机(电脑)发送一数据帧给单片机,单片机中断接收,主函数同时处理AD转换。主函数发送AD转换结果并用数据帧返回主机。但是不知道为什么,单片机发送返回的数据帧的时候会一直不停的发送,停不下来,并且调试显示是CAN错误被动,是个啥么情况。大概会是啥问题。求大神解答。。拜谢!!
中断:
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 38 CAN_r(void){ //接受中断函数
CANRCV1FRM(RCVData);
//start 1 AD;
CAN0RFLG_RXF = 1;
}
#pragma CODE_SEG DEFAULT
发送数据:
if (RCVData[0]==1)
{
SNDFlag=CANSND1(ID,(buff_AD),can_len);
PORTB_PB7=0;
SNDFlag=CANSND1(ID,(buff_AD+8),can_len);
PORTB_PB6=0;
SNDFlag=CANSND1(ID,(buff_AD+16),can_len);
//send success
if(SNDFlag==1) {
PORTB_PB4=0;
RCVData[0]=0;
SNDFlag=0;
}
}
|
|