报错结果

Error while accessing a target resource. resource is perhaps not available or a wrong access was attempted.

就是无法下载程序。且Keil的SWDIO处显示有设备存在也就是能检测到芯片,

但是一烧录就会报错,下图是报错内容。

       而且使用ST-LINK Utility也无法连接,使用STM32Cubeprogrammer也无法连接(这个可能是其他问题,因为其他能烧录的芯片也连接不上)。SWD引脚口也没有被锁,因为如果被锁的话ST-LINK Utility是可以解锁的,实际上根本没法连接。咨询了各路神仙,立创商城售后技术给的意见是:

1.确认电压是否符合要求,用万用表测量VCC和GND之间的电压是否稳定,是多少V。
2.检查晶振是否起振,要用示波器观察是否有正弦波信号,频率对不对。
3.检查复位引脚电压对不对。
确认主控正常运行了再看下SWD接口是不是锁定了
用STM32CubeProgrammer的“Under Reset”模式连接(需连接NRST引脚),强制解除SWD接口锁定。

       除了2没有验证外,其他都排除了(总体感觉立创商城的技术确实提供不了太多帮助),因为及时外部晶振有问题,内部晶振也能工作,所以应该不是这个问题。排查了几天实在没办法了,打算改用串口烧录程序,但是要把BOOT0拉高,当时电路设计时没有设计这个拉高的选项,所以只能把芯片拆掉把引脚接出来,结果芯片被我拆坏了。最后索性重新设计,其他都没有改动,只把BOOT0引脚接了下拉电阻然后接了一个上拉的选项(用电容断路,需要拉高的时候用镊子夹电容两端将电容短路,这样设计的目的是减小PCB空间的占用)。

最后自己手工焊接最小系统板之后ST-LINK Utility就能成功连接了。总结一下问题的原因:极有可能是因为之前的电路设计中BOOT0直接接地导致这个问题,因为在B站中也有一个类似的案例,所以才想到将BOOT0加一个下拉电阻。另外BOOT0设计的时候一定要设计拉高的选项,这样万一STLINK不能烧录还能选用串口烧录。下图是最后解决之后录了个视频,实在太开心了,排查了这么久终于解决了。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐