用SWD调试器下载程序,为什么拔掉后程序不运行了

用SWD调试器下载程序,为什么拔掉后程序不运行了,第1张

因为当JLINK在板子上连接的时候,断电情况下,会一直把RESET拉低,导致芯片一直处在复位状态,所以不能正常工作。
把jlink或stlink和stm32板的的连接排线(jtag接口)也拔掉,这个时候主板就可以工作了。

boot0 = 1 boot1 = 0
是二个不同的IO控制位,用来选择从哪里启动的。
这都不知道应该打自己二板子
ISP下载 就是用串口下载 可以不用RTS DTR 功能

STM32的RTC晶振经常出现不起振的问题,这已经是“业界共识”了。很多人在各种电子论坛上求助类似于“求高手指点!RTC晶振不起振怎么办”的问题,而其答案基本可以概括为“这次高手帮不了你了”
更有阴谋论者提出让人啼笑皆非的解释——STM32的RTC晶振不起振是ST与晶振厂商串通后故意搞出来的,目的是提高某晶振厂商高端晶振的销量。
最近做的几块板子也用到了STM32的RTC,前后两版一共做了大概6片,幸运的是并未遇到晶振不起振的现象。而我采用的是3毛钱一个的普通晶振,并未选用传说中低负载高精度晶振。后来在另外一片实验性质的板子上首次遇到了晶振不起振的问题,而且做了2片都不起振,这才让我意识到这个问题的严重性。
从上述现象来看,我认为对RTC晶振起振影响最大的因素应该是PCB的布线。但是遇到问题时通常是PCB已做好,甚至已经做了几百块,没有回头路了。于是大家更关注的问题似乎就是“如何补救”了。在网上搜索一下,你就会发现世界是如此美好!每个人的经验和建议都不一样,甚至是完全相反的!这种现象告诉我们,除了PCB布线,对晶振起振影响最大的似乎不是电气参数,而是另外一种不可忽略的因素——人品!
各种相互矛盾的经验也告诉我们,导致晶振不起振的原因是多种多样的,也是因“人”而异的。也许,我们无法找到一个绝对有效的经验一举解决STM32的RTC晶振这个让人头疼的问题,但我们可以从各种经验中找到一些线索,为最终摸索到适合自己这块板子的解决方案提供一些帮助和提示。
如果晶振不起振,尤其是你已经使用了传说中的爱普生6pF晶振后还是不行,也许你应该尝试对以下几个方面排列组合,找到适合你这块板子的,更容易起振的方式。
下面就罗列一下可能影响RTC晶振起振的因素
1 晶振的品牌和负载电容
大家貌似都知道要用6pF的晶振,但我发现其实125pF的也可以用。大家都说KDS日本原装的好,我那个3毛钱的国产晶振貌似也没啥大问题。。。
2 晶振外接的匹配电容
有人说6pF的晶振要配6pF的电容。但有经验公式指出这个电容的值应该是晶振本身负载电容的两倍,6pF的晶振应该配10pF的匹配电容,当然125pF的就应该配20pF或者22pF的电容了~电容值不匹配可能造成晶振不起振。更神奇的是,有人指出去掉外接的匹配电容会使晶振起振!这似乎没啥道理,但在我的板子上,有且仅有这个方案是可行的!!!
3 晶振并联的反馈电阻
晶振可以并联一个高阻值的电阻,据说这样更容易起振。。。这个电阻的阻值有人说是1MΩ,有人说是5MΩ,也有人说是10MΩ,,,当然也有人说不能并联这个电阻,并联了反而不起振
4 XTALout到晶振间串联电阻
这种做法是官方的应用笔记指出的,而且给出了这个电阻的计算公式。对这个电阻的的必要性也是众说纷纭,同样存在两种矛盾的说法,即必须要有这电阻,否则不起振。还有一说不能有这个电阻,否则不起振。。。从官方的应用笔记来看,这个电阻的主要作用是保护晶振,以防晶振发热。由此看来这个这个电阻似乎并非影响晶振起振的主要因素,甚至可能让晶振更难起振。
5 晶振的外壳是否接地
这个就不用说了吧。晶振的外壳是金属的,做封装时可以把那个焊盘做成机械焊盘而悬空,也可以做成电气焊盘,然后连接到GND。对这个说法同样存在争议,有人说外壳必须接地,也有人说接地后反而不起振。
6 提高Vbat引脚的电源质量
这种说法是有一定道理的,因为RTC部分是由Vbat的来供电的。有人说Vbat引脚对电源质量要求比较高,如果纹波较大可能会影响晶振的起振。网上还有其他人验证过,直接上图(原贴链接:>

我也出现过这类问题

你可以调一下,先按

,会d出

,把RID什么的改一下,改成你的下载器,我用的是JLINK,所以改成JLINK,

,之后你再按一下那个“settings”,会d出一个窗口

,修改一下左边那个Pot和Maxclock,应该就好了。

(1)开发板通常自带LDO芯片,如AMS1117s-33V,可以将5V转换为33V供芯片使用。开发板一般可以直接用USB供电。

(2)可以用串口下载,也可以用仿真器下载,如st-link,J-link等,通常仿真器支持JTAG和SWD两种下载方式,JATG历史悠久,SWD的优点是接口引脚较少。

(3)开发环境支持常见的仿真器,不需要额外的下载软件。使用串口ISP下载的话可以用Flash_Loader_Demonstrator这个软件。

开发用到的软件(开发环境):Keil ,IAR均可。网上资料Keil的多一些。开发流程无非绕不开这么几步:环境搭建,提出需求,设计硬件电路及算法,编程,调试。通常使用c语言开发,c++也可以。

关于32的时钟,还是很复杂的,从楼主的提问来看,应该没有相应的基础,这里就不给你介绍了。等你学的慢慢深入,就会懂得。(stm32的手册中有非常详细的介绍,慢慢学会看手册,这个不急)

所谓最小系统是指使单片机能工作的最基本的电路。对于stm32来讲,包括这么几个部分:stm32芯片,下载电路,时钟电路,电源电路,复位电路。

顺便说一下,单片机只是个芯片,单片机开发板是以单片机为核心,包括其他外设的一个系统。从楼主的最后一句话来看,似乎没能弄清它们的关系。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13327583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-15
下一篇 2023-07-15

发表评论

登录后才能评论

评论列表(0条)

保存