打印

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

[复制链接]
3423|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任然可以收发数据,貌似没有真的复位,求解!
不知道出了什么问题!

使用特权

评论回复
5
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);

使用特权

评论回复
6
dongjiajia|  楼主 | 2012-6-11 19:42 | 只看该作者
怎么没人响应呢

使用特权

评论回复
7
dongjiajia|  楼主 | 2012-6-11 19:45 | 只看该作者
不明白你的意思,我通过强制设置MCR的reset来实现复位,可是没有成功!你看一下我贴出来的程序,哪里出了问题,请大侠赐教!

使用特权

评论回复
8
dongjiajia|  楼主 | 2012-6-11 19:45 | 只看该作者
你实现过这个功能吗?

使用特权

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

本版积分规则

0

主题

66

帖子

0

粉丝