怎么软件复位STM32F107中的CAN控制器!!!

[复制链接]
4286|7
 楼主| dongjiajia 发表于 2012-6-8 17:37 | 显示全部楼层 |阅读模式
我想通过软件来复位CAN控制器,怎么实现啦!软件复位CAN是复位什么寄存器呀!
 楼主| dongjiajia 发表于 2012-6-8 17:38 | 显示全部楼层
比较急!希望有人发言!
beforewind 发表于 2012-6-8 17:45 | 显示全部楼层
看手册,寄存器定义
 楼主| dongjiajia 发表于 2012-6-8 22:11 | 显示全部楼层
我对CAN进行强行复位:CAN1->MCR |= 0x8000;复位后可以检查到CAN1>MCR=0x00010002、CAN1->MSR=0xC02都为其复位值,可是CAN任然可以收发数据,貌似没有真的复位,求解!
不知道出了什么问题!
 楼主| dongjiajia 发表于 2012-6-10 09:21 | 显示全部楼层
void ResetCAN()
{
   CAN1->MCR |= 0x8000;
   if((CAN1->MCR==0x00010002)&(CAN1->MSR==0xC02))
   STM_EVAL_LEDOn(LED2);
   else
   STM_EVAL_LEDOn(LED3);
}
下面是mian函数的部分代码
  /* 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);
 楼主| dongjiajia 发表于 2012-6-11 19:42 | 显示全部楼层
怎么没人响应呢
 楼主| dongjiajia 发表于 2012-6-11 19:45 | 显示全部楼层
不明白你的意思,我通过强制设置MCR的reset来实现复位,可是没有成功!你看一下我贴出来的程序,哪里出了问题,请大侠赐教!
 楼主| dongjiajia 发表于 2012-6-11 19:45 | 显示全部楼层
你实现过这个功能吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

66

帖子

0

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