打印

STM32的CAN问题

[复制链接]
2639|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
皇甫sir|  楼主 | 2013-2-15 20:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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
沙发
airwill| | 2013-2-15 22:00 | 只看该作者
从这个地方, 好象没有看到问题, 那边发送端和按键处理的地方是不是有问题呢?

使用特权

评论回复
板凳
皇甫sir|  楼主 | 2013-2-15 22:16 | 只看该作者
我已经把发送节点的电源都关掉了呀!

使用特权

评论回复
地板
IJK| | 2013-2-16 09:29 | 只看该作者
“接受板中的led灯闪烁一下。问题是:我按一下,led灯就一直闪烁。”
从症状来看,接收板的软件设计也值得怀疑。

使用特权

评论回复
5
杨爱林林| | 2013-2-18 16:34 | 只看该作者
首先不知道你发送端程序是个什么情况  
一直发送呢 还是单次
再者  既然一直闪烁 说明RxMessage.Data[0]  中的数据一直都在  

使用特权

评论回复
6
whitemomo| | 2013-4-18 10:14 | 只看该作者
双板通信CAN两个芯片型号不一样该怎么办

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝