目前一直卡在如下的初始化过程中,始终是失败的,没有接其他的CAN总线电路。
- /* Check Sleep mode leave acknowledge */
- while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U)
- {
- if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
- {
- /* Update error code */
- hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
- /* Change CAN state */
- hcan->State = HAL_CAN_STATE_ERROR;
- return HAL_ERROR;
- }
- }
复制代码
因为是用于简单测试,所以终端电容电阻共模电感都没有加,还是CANH和CANL之间必须加电阻和电容?
电路图如下所示:
阿里旺旺图片20181130182554.jpg (220.73 KB, 下载次数: 0)
下载附件
2018-11-30 18:26 上传
不会吧!那STM32CUbe的代码不能单机调试?
那这样的STM32就有点搞了,
如果总线上两个 STM32 的CAN 通讯 总有一个先初始化,先初始化的那个很可能初始化不成功,因为CAN总线上没有正常的CAN接口设备
然后第二个也初始化不成功
理想的CAN设备的初始化应该与 外部是否有连接,是否有终端电阻无关,
就像RS485一样,没见过uart初始化不成功过的(硬件正常、程序正常)
一周热门 更多>