求问,STM32CubeMX的CAN用法。

2019-12-15 11:00发布

目前一直卡在如下的初始化过程中,始终是失败的,没有接其他的CAN总线电路。

  1.   /* Check Sleep mode leave acknowledge */
  2.   while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U)
  3.   {
  4.     if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
  5.     {
  6.       /* Update error code */
  7.       hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;

  8.       /* Change CAN state */
  9.       hcan->State = HAL_CAN_STATE_ERROR;

  10.       return HAL_ERROR;
  11.     }
  12.   }
复制代码

因为是用于简单测试,所以终端电容电阻共模电感都没有加,还是CANH和CANL之间必须加电阻和电容?
电路图如下所示:
阿里旺旺图片20181130182554.jpg (220.73 KB, 下载次数: 0) 下载附件 2018-11-30 18:26 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
appleboy
1楼-- · 2019-12-15 14:04
CAN单机调试得用回环模式
dswkl11
2楼-- · 2019-12-15 19:14
要设置滤波器参数啊
knight_avr
3楼-- · 2019-12-16 00:42
 精彩回答 2  元偷偷看……
smaret
4楼-- · 2019-12-16 04:30
CAN 需要回路,没有外部回路时。就是环回模式。不然就会卡在初始化的地方。
dswkl11
5楼-- · 2019-12-16 10:12
knight_avr 发表于 2018-11-30 21:51
stm32 的CAN 初始化 就是容易失败,我也遇到过,如果CAN上不接东西 或者波特率相差很大 就会出现初始化失败 ...

我也发现这个问题,我程序是对的,就是开机启动的时候有时会CAN初始化会失败,有时候又会成功的话,成功的话can通讯是没有问题的。
gsq19920418
6楼-- · 2019-12-16 11:19
smaret 发表于 2018-12-1 11:16
CAN 需要回路,没有外部回路时。就是环回模式。不然就会卡在初始化的地方。 ...

我需要在CANH和CANL之间焊接电阻?

一周热门 更多>