kkkkk 我手上有两块GhF407VGT6开发板,但是新版1.5版本的F4标准库下到较早年份买的开发板没反应,另一款最近买的可用。不确定是sdk问题,还是老板子买到假货了。老板子和新版子都可以直接用ST官方hal库的点灯。
kkkkk Geehy极海-社区小管家 黑色的是最近买的工控开发板,绿色板子是23年买的网口开发板。两块32都能用ST的HAL的同个代码下进去控制GPIO,绿色的板子Gh标准库下进去没反应,黑色的下进去成功控制gpio。
kkkkk Geehy极海-社区小管家 不方便,这个是直接插在之前客户项目的板子上的。最近要做另一个项目又要用到极海的,打算先拿这块写通信代码的,结果发现了新版sdk在这上面用不了。负责绿色板子开发的人是直接hal库的,我这新项目可能有代码审查又必须要用国产开发库。
Luckk kkkkk 怀疑是你板子的晶振有异常,卡死在SystemInit的while循环。 你注释掉startup_apm32f407xx.s文件的SystemInit跳转指令(如截图所示),直接跑到main函数
kaiya kkkkk 如果您使用的是HAL库,用CubeMX生成的代码,可能系统时钟的配置使用的是默认的HSI时钟,HSI时钟是可以正常运行的 Geehy的标准库中SystemInit会初始化时钟到168MHz(使用HSE),里面有一些判断可能没有成立,导致其卡死在了死循环中。您可以把注释去掉然后重新debug,单步运行看看卡死在什么地方了,是判断的什么标志。 debug时需要去掉“Run to main”的勾选
kaiya kkkkk 对于使用ST的库&HSE依旧能够运行需要关注一下,当前系统时钟是否是你设置好的规格,您可通过外设寄存器窗口进行确认。 您看到的这个地方已经非常接近异常处了,,您可通过外设寄存器窗口进行下一步的debug,可重点关注flash等待周期是否已经设置正确,PLL是否已经准备就绪等内容。 debug界面如何查看外设寄存器?您可参考下面的步骤(图片示例非407芯片) 祝您调试愉快!