int main()
{
CanRxMsg RxMessage;
rcc_config();
GPIO_Initcount();
CAN_Config();
USART_InitConfig();
NVIC_Config();
delay_init(72);
LCD_Init();
Font_Init();
POINT_COLOR=RED;
BL = 1;
LCD_Clear(GREEN);
while(1)
{
u8 getdata = 0;
//接收节点程序
CAN_Receive(CAN1,CAN_FIFO0,&RxMessage);
USART1_SendData(RxMessage.DLC);//通过串口查看RxMessage.DLC
USART1_SendData(RxMessage.StdId); //通过串口查看RxMessage.StdId
if((RxMessage.IDE == CAN_ID_STD)&&(RxMessage.DLC == 0x01)&&(RxMessage.StdId == 0x3F))
{
RxMessage.DLC =0;
RxMessage.StdId =0;
getdata=RxMessage.Data[0];
}
CAN_FIFORelease(CAN1,CAN_FIFO0);//释放邮箱
USART1_SendData(getdata); //通过串口查看getdata
if(getdata==0x01)
{//led灯闪烁
getdata = 0;
GPIOC->BSRR=0x03000000;
delay_ms(1000);
GPIOC->BSRR=0x00000300;
delay_ms(1000);
}
}
}
我自己做的两块板子,一块作为发送节点,一块作为接受,CAN发送器为VP230.我的意图是:当发送节点中的按键按一下时,接受板中的led灯闪烁一下。问题是:我按一下,led灯就一直闪烁。通过串口查看getdata 数据总是0x01,即使把发送节点电源关掉也是0x01 |