从机通过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]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
{
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; //½óêÕ3é1|
}
else
{
flag = 0xff; //½óêÕ꧰ü
}
FunCode = RxMessage.StdId & 0x1f; //D-òéÖDê1óÃ8λ1|ÄüÂ룬¶øêμ¼êÖDÎaáËóëéy¼¶Ãüáîò»ÖÂê1óÃáË5λ1|ÄüÂë
CCR1=RxMessage.Data[3] << 24 | RxMessage.Data[2]<< 16|RxMessage.Data[1]<< 8| RxMessage.Data[0];
}[/mw_shl_code]
一周热门 更多>