[CAN-bus/DeviceNet] stm32f107CAN复位实现!!!

[复制链接]
2603|2
 楼主| dongjiajia 发表于 2012-6-10 09:13 | 显示全部楼层 |阅读模式
我现在想实现CAN控制器的软件复位,通过设置CAN_MCR=0x8000,即置位CAN主控制器的复位位来实现复位。可复位后,主控制寄存器和主状态寄存器都变为他们的复位值,但是CAN任然可以,收发数据,不知道哪里出了问题,求解!
 楼主| dongjiajia 发表于 2012-6-10 09:16 | 显示全部楼层
void ResetCAN()
{
   CAN1->MCR |= 0x8000;
   if((CAN1->MCR==0x00010002)&(CAN1->MSR==0xC02))
   STM_EVAL_LEDOn(LED2);
   else
   STM_EVAL_LEDOn(LED3);
}
 楼主| dongjiajia 发表于 2012-6-10 09:17 | 显示全部楼层
/* CAN1 configuration */
  CAN_Config(CAN1,0x0);

  /* CAN2 configuration */
  CAN_Config(CAN2,0xF);
  ResetCAN();
  /*Enable CAN1 FIFO Inteeeupt*/
  CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);
  /*Enable CAN2 FIFO Inteeeupt*/
  CAN_ITConfig(CAN1, CAN_IT_FMP1, ENABLE);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部