美文网首页
GD32替换STM32遇到的坑之《HAL库CAN无法初始化》

GD32替换STM32遇到的坑之《HAL库CAN无法初始化》

作者: VellBibi | 来源:发表于2022-04-14 16:27 被阅读0次

    问题

    使用GD32F103替换STM32F103发现同样的代码,STM32可以正常初始化CAN并且通信,而GD32无法初始化CAN,HAL_CAN_Init函数返回HAL_ERROR
    但我之前使用标准库,GD32和STM32是可以直接复用的

    原因

    经过反复对比标准库和HAL库的区别,发现写入退出睡眠的寄存器顺序刚好相反
    这是标准库,先退出sleep,再初始化


    这是HAL库,先初始化,再推出sleep


    尝试替换了下顺序,对STM32是没有什么影响的,但GD32必须是先退出sleep再初始化

    解决方法

    在HAL_CAN_Init前先退出sleep模式,这样可以不用修改HAL库就可以兼容GD32了


    相关文章

      网友评论

          本文标题:GD32替换STM32遇到的坑之《HAL库CAN无法初始化》

          本文链接:https://www.haomeiwen.com/subject/czitertx.html