你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于STM32F105 CAN初始化问题

[复制链接]
leiyijing 提问时间:2017-8-11 19:35 /
最近困扰很久,CAN2初始化不成功,把断点设置在if那里,必定进入错误状态,但是把断点设在status那里,每次都能进去,能初始化成功,不知道为何?MCU初始化CAN控制器的时候,外面的收发器需要上电吗?


    /* Check acknowledged */
    if (HAL_IS_BIT_SET(hcan->Instance->MSR, CAN_MSR_INAK))
    {
      status = CAN_INITSTATUS_SUCCESS;
    }



发生问题是在高温80度时,设置了INRQ位,但是等不到INAK的置位应答,导致初始化错误,常温没有问题,高温有问题,不知道哪位大侠见过?

/* Request initialisation */
  SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ);

  /* Get timeout */
  tickstart = HAL_GetTick();   

  /* Wait the acknowledge */
  while(HAL_IS_BIT_CLR(hcan->Instance->MSR, CAN_MSR_INAK))
  {
    if((HAL_GetTick()-tickstart) > CAN_TIMEOUT_VALUE)
    {
      hcan->State= HAL_CAN_STATE_TIMEOUT;

      /* Process unlocked */
      __HAL_UNLOCK(hcan);

      return HAL_TIMEOUT;
    }
  }


收藏 评论5 发布时间:2017-8-11 19:35

举报

5个回答
赵工123 回答时间:2017-8-14 10:24:38
本帖最后由 赵工123 于 2017-8-22 10:15 编辑

您 这 CAN 是用于 那些 场合?
》80度有问题,应该不是 软件的问题,有空 可参考下我们的程序
冗余双CAN现场总线STM32F105开发板KeilC++源程序
https://www.stmcu.org.cn/module/ ... amp;fromuid=3399024
(出处: 意法半导体STM32/STM8技术社区)


评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

leiyijing 回答时间:2017-8-16 11:15:58
xmshao 回答时间:2017-8-21 11:40:16
怎么感觉 你开头黑体字跟中间红体字似乎不一致。

黑体字分明只是说断点位置不同影响运行结果,整体上是可以进入初始化模式的。

红体字描述的是温度高了进不了初始化模式。不过温度80度以上的话,可能有点玄了,

毕竟STM32F105XXT6的保证温度范围是-40到85°C.


评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

zhoupxa 回答时间:2017-8-22 15:02:25
MCU初始化CAN控制器时收发器应该不需要上电
楼主意思是高温初始化超时,按规格书不应该是这种情况,建议参照规格书参数调整超时时间设置(或许时钟频率发生一些变化,处于临界状态)

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

KEY1 回答时间:2020-9-10 14:28:51
我今天也遇到了同样的问题 我是F2芯片 低温-25度 时遇到此问题,高温还没试,咋解决的呢?

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版