stm32驱动GM6020/遥控器遇到的问题小记

博客

Posted by BY moment on April 30, 2025

前言

此处为简单的ROBOMASTER学习过程中遇到的问题的记录

问题1:GM6020 CAN通信没反应

clone学长代码后出现的问题。尝试在中断中打断点,并且单步运行,发现HAL_CAN start 返回值为OK,也就是初始化成功。 然而,单步运行,检查线序和过滤器后发现没有问题。学长检查后观察了变量结构,观察到0x0200报错代码,因为是通用报错所以没用 检查时钟树,发现时钟没有给满,导致计算出的波特率不够,所以出现问题。

问题2:usart串口没有用

首先C板的usart1对应的是实际上的usart6,而usart2才是usart1。省略过程,结果是因为tmd RX和TX要对应着接

问题3:反复进入CAN中断

具体现象是:有两个GM6020电机分别挂载在CAN1和CAN2上,将CAN1和CAN2的FIFO中断改为FIFO0和FIFO1时,程序在初始化完CAN后就反复进入两个中断,甚至无法正常调度任务。尝试将中断全部改为FIFO1,问题依然存在。尝试将全部改为FIFO2,一切正常。

问题4:断点失效

debug时,在一个Switch中,应该被执行的case中无法打断点,反而不应该被执行的case中的断点被执行了,但是实际上程序跑的还是应该被执行的case。 原因:keil的优化等级问题,导致debug出问题,改为最低等级优化解决(原理尚待研究)

问题5:CAN收不到数据

CAN有两种线序,其中一种是反的,一种是正的。反的自然接不到数据

问题6: