好久没用搞过STM32了,因项目需要,得点个灯玩玩,虽然很简单但心里还是有点小兴奋,真爱无疑,哈哈 于是,昨晚,月黑风高的午夜,我打开尘封已久的STM32 CUBMX, 选择芯片,配置时钟,将PA2设为output mode,一顿操作猛如虎,顺利生成了一个MDK工程。接下来,将一个从公司借来的ST_LINK V2之VDDGNDCLKDIO接到芯片上,再将它接到我的电脑上(来来,给个特写,装了GTX 1060的电脑,原本打算用来搞视觉学AI的爱机),再然后,打开神器Keil5,进到Debug配置页面里将ST_LINK设为debugger,确定,编译,烧录,“咚咚咚”,win10系统发出低沉的尖叫,“提示框写的什么我忘记了,大概是target not found之类的”。出师不利的我怀着沉重的心情再次进到debug配置页,开始了漫漫踩坑路。
正文开始
-
“internal command error” 在ST_LINK的“setting”页可以看到这条提示,刚开始我以为是stlink哪里的设置出了什么问题,所以翻出来六七年前买的秉火至尊版配套CMSIS-DAP仿真器,依然不行,然后我就怀疑会不会是系统的问题,又花了好长时间装了个win7虚拟机,搞到一点多,睡觉。 早上起来,才醒悟过来百度一下,看到有人说可能是芯片里程序导致进入了休眠之类的状态导致连接失败,于是将RST引脚直接接到gnd,果然可以识别到芯片了,但一直拉低RST肯定不行的啊,这时我想起来仿真器上也有RST,仿真器的RST是不是就是用来自动控制芯片RST的呢,一试(connect要选under reset),果然如此,但只是用CMSIS-DAP测试通过了,stlink依然失败,keil提示固件过旧,但又升级不了,今天先不管了。 -
rddi-dap error 如果在“setting"页选中了"Reset and Run"就会在下载信息里看到这个报错,我看了程序运行也不正常,仿真的话进到函数“SystemClock_Config”就过不去了,时间紧迫,网上找了官方的例子(STM32F301x/302x/303x/334x DSP和标准外设库,包含5种不同IDE的25个不同外设和模板项目的81个示例)来试,OK,一切正常,看来cube mx也不是那么好玩的。
结语
stm32的芯片网上资料巨多,有问题首先应该search一下,不要自己瞎猜。
|