路芽辉 发表于 2019-1-21 21:06:08

STM32F103C8T6在SWD可运行,上电自运行后无反应

1.芯片使用STM32F103C8T6,能够烧写程序并进行程序调试,百度谷歌,万用表啥的测试整了一圈了,摸不着头脑。
2.使用的BOOT启动方式是BOOT0通过10k电阻接到地,BOOT1悬空。
3.检查过芯片供电,3.3V电压等都一切正常,芯片管脚上也能测得。
4.NRST引脚通过引线短触DGND,无反应。
5.在使用IAR通过SWD烧写程序后,退出调试模式,这时如果拔出SWCLK和SWDIO线,只保留供电线路,程序仍然能够正常运行。
6.当重新上电,程序不能运行。
7.补充说明,晶振使用的都是有源晶振,拿示波器检测过,晶振都是正常工作的。

toofree 发表于 2019-1-21 21:06:09

本帖最后由 toofree 于 2019-1-22 09:47 编辑

复位信号原理没画出来,如果是上拉10K、对地0.1uF的RC复位的话,没问题。
有上拉的情况下,短接复位到GND,应该也是可以复位的。
先用STM32CubeMX建个简单的点灯程序跑着试试,排除一下硬件问题。内部时钟和外部晶振都试试。
如果的确如你描述的话,软件的问题可能性大,但你没有附工程。

wudianjun2001 发表于 2019-1-22 09:57:53

复位加个对地电容试试

xiaolingoei 发表于 2019-1-22 10:13:06

不运行一般是下面几个问题:
1、复位电路怎么设计的?
2、VBAT不用的话就直接接3.3V。
3、晶振电路呢?可能是晶振频率和工程里面不一致。
4、认真检查一下VDD和VSS系列的引脚,少接、漏接一个,都有可能不运行。

祝早日调出。

路芽辉 发表于 2019-1-22 11:15:32

刚测试完了,重新写了个闪灯的程序,底部电路没有任何问题。
再转回到自己的应用程序,一个一个屏蔽,最后发现问题出现在使用的原子RTC库,在RTC的初始化函数卡死。
没搞明白为何SWD调试时可以,正常上电不行,等会接着调试看看。反正用CUBE生成的RTC没法用,HAL库函数里面都没有时间保存的操作。

路芽辉 发表于 2019-1-22 11:18:40

toofree 发表于 2019-1-22 09:45
复位信号原理没画出来,如果是上拉10K、对地0.1uF的RC复位的话,没问题。
有上拉的情况下,短接复位到GND, ...

我用不到复位,考虑到成本,所以根本就没加这块的东西了。
实际测试后发现在软件这块出现问题,分给你吧

破灬晓 发表于 2020-3-25 01:32:00

你好,我也遇到了这问题,我用的是某宝上买的最小系统版,长条形,C8T6,然后用SWD供电,程序可以正常运行,用USB口供电,就不能运行程序了。请问怎么解决呢?
页: [1]
查看完整版本: STM32F103C8T6在SWD可运行,上电自运行后无反应