高中生
最后登录1970-1-1
在线时间 小时
注册时间2019-3-14
|
楼主 |
发表于 2019-7-16 15:21:32
|
显示全部楼层
int c=0;
extern uint8_t can_rx_flag;
extern CanRxMsg can_rx_message;//接收到的数据
void CAN1_RX0_IRQHandler(void)
{
if((CAN_GetITStatus(CAN_num,CAN_IT_FMP0))!=RESET)
{ c=(CAN_GetITStatus(CAN_num,CAN_IT_FMP0));
can_rx_flag=1;
CAN_Receive(CAN1,CAN_FIFO0,&can_rx_message); //切记不能放到if语句前面,否则接受数据后会把中断标志位清零!!!!!!!!!!!!!!!!!!!!!!
}
printf("\n标志位置\n");
// c=((CAN1->IER)&CAN_IT_FMP0);
printf("\n在中断c=%d\n",c);
// can_rx_flag=1;
}
因为我的中断程序中还检查了中断标志位作为判断,所以必须把Receive这个语句放到中断标志位检测后面。 |
|