1.git指纹验证

电脑重装系统后,用vscode上传代码会跳git指纹验证的弹窗,点击选项后,弹出来另一个弹窗,不管点击是还是否,都会反复弹

git指纹验证弹窗
另一个弹窗
百度一下发现是因为重装系统后,电脑里存储的公钥丢失,需要重新生成并将 SSH 公钥添加到 Gitee 账户中,所以其实参考文章里面的步骤并不需要完全按顺序操作完,执行到第二步就可以了。
参考文章:https://blog.csdn.net/cnzzs/article/details/144573423

2.keil调试无外设

keil调试的时候想看一下GPIO的输出值,但我的peripherals里面的system viewer里面什么也没有,应该是因为重装电脑之后,重新下载keil,导致之前的配置数据丢失,需要重新配置。
办法:Peripherals无外设寄存器:修改Debug选项中的Dialog DLL中的内容为DARMSTM.DLL,修改Parameter中的内容为-pSTM32F103VC。这里因为我建工程时选的MCU是STM32F103VC,所以改成这个。这个参数要和建工程时选的MCU一致。
在这里插入图片描述
参考文章:https://blog.csdn.net/u013072995/article/details/62238495

3.数组越界导致bug

发送命令使motor0转动,用500ms 的定时器让motor运行500ms后自动停止。motor0开始之后直接卡死,首先想到的就是定时器没初始化成功,遂加上创建成功的输出显示
定时器创建成功
jlink显示
定时器是创建成功了的,那还能是什么原因呢?
进debug调试,发现是进了断言错误,问题还是在定时器这里

在这里插入图片描述
这个时候有点一筹莫展,问了ai
ai
看到错误根源分析,几乎瞬间我就有答案了,数组越界造成的,排除掉1和3,剩下的2就是真相。

在watch里,发现motor的值果然是不正常的
在这里插入图片描述
在.map里找了一下,上个值果然是个数组,至此,问题定位完毕,问题出在adc_buf上,adc_buf数组越界导致motor0的定时器地址异常,变为不可访问的地址,执行到motor0的定时器时,就会出现断言错误。
在这里插入图片描述
俩宏定义位置互换,问题解决
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐