【求助】CAN通讯接收不到电脑发送的数据

2019-10-15 23:19发布

从机通过CAN卡与电脑连接起来,电脑给从机发送数据,硬件上可以检测到ARM的CAN-RX有脉冲,但是RxMassage里一直没有值,也没有进入接收中断,请大家看看我的程序有什么问题?[mw_shl_code=applescript,true]static void CAN_NVIC_Config(void)
{
           NVIC_InitTypeDef NVIC_InitStructure;
                /* Configure one bit for preemption priority */
                NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
                 /*ÖD¶ÏéèÖÃ*/
                NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;           //CAN1 RX0ÖD¶Ï
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;                   //ÇàÕ¼óÅÏ輶0
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;                           //×óóÅÏ輶Îa0
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
枫之韵2012006
2019-10-16 04:39
[mw_shl_code=applescript,true]void USB_LP_CAN1_RX0_IRQHandler(void)
{
               
                  u8 FunCode;
          //u16 i;
           u16 CCR1;
               
                CAN_Receive(CAN1, CAN_FIFO0, &RxMessage);
               
                if((RxMessage.StdId!=0) && (RxMessage.IDE==CAN_ID_EXT)
     && (RxMessage.DLC!=0) && ((RxMessage.Data[1]<<8|RxMessage.Data[0])!=0))
  {
    flag = 0;                                                //&#189;óê&#213;3é1|
  }
  else
  {
    flag = 0xff;                                            //&#189;óê&#213;꧰ü
  }
               
                FunCode = RxMessage.StdId & 0x1f;                                        //D-òé&#214;Dê1ó&#195;8&#206;&#187;1|&#196;ü&#194;&#235;£&#172;&#182;&#248;êμ&#188;ê&#214;D&#206;aá&#203;ó&#235;éy&#188;&#182;&#195;üá&#238;ò&#187;&#214;&#194;ê1ó&#195;á&#203;5&#206;&#187;1|&#196;ü&#194;&#235;
       
          CCR1=RxMessage.Data[3] << 24 | RxMessage.Data[2]<< 16|RxMessage.Data[1]<< 8| RxMessage.Data[0];               

        }[/mw_shl_code]

一周热门 更多>