请教:关于CAN中断接收数据的问题,请高手们不吝赐教

2019-03-23 16:23发布

请教一个关于于CAN中断接收数据的问题:
在STM32的CAN通信中,采用中断方式接收数据,但发现一个问题,就是 主机发一组数据下去,从机收到后返回一组数据给主机;然后主机就像死机一样不动了。这里猜想应该是产生了中断。然后关闭中断,采用查询的方式读取数据则可以正确读取,不知道怎么回事,求教了。
// 中断函数
void USB_LP_CAN1_RX0_IRQHandler(void)
{
  //u8 rxbuf[8];
  u32 id;
  u8 ide,rtr,len;
        u8 i;
  Can_Rx_Msg(0,&id,&ide,&rtr,&len,CAN_RBuf);
  //CanRxLong = len;
  SYS_Flag.SYS_canrxfg = 1;
        CAN->RF0R = 1<<5;
       
        for(i=0;i<CanRxLong;i++)
          UART1_Send_1Byte(CAN_RBuf[i]);
       
        LED6  ^=1;


此帖出自小平头技术问答
7条回答
Li_Lei
1楼 · 2019-03-24 01:37.采纳回答
 精彩回答 2  元偷偷看…… 0人看过
pcf2000
2楼-- · 2019-03-24 05:07
huo_hu 发表于 2017-3-4 18:29
你没清中断标志吧

CAN->RF0R = 1<<5;
这句应该是清除中断标记吧
Li_Lei
3楼-- · 2019-03-24 05:39
调一下就知道了
pcf2000
4楼-- · 2019-03-24 06:55
 精彩回答 2  元偷偷看……
pcf2000
5楼-- · 2019-03-24 09:02
OK,问题搞定了,多谢指导  
Tomas.chen
6楼-- · 2019-03-24 09:17
pcf2000 发表于 2017-3-7 18:05
OK,问题搞定了,多谢指导

请问下楼主。你是怎么解决这个问题的。我也遇到一样的问题
pcf2000
7楼-- · 2019-03-24 15:05
 精彩回答 2  元偷偷看……

一周热门 更多>