你仿真的时候led能点亮吗?
如果仿真不能,试着单步调试,看点亮和熄灭的操作是不是能正常执行。不能的话,去检查对应io口的电平是否正常变化。能正常变化的话考虑led灯坏了。这些都排除之后,再去检查你的代码是不是有问题。
如果仿真能,当然这种情况基本不会出现。去检查一下仿真器下载的设置,试着擦除整个芯片后下载,还不行的话看看程序里的延时是不是太短。
调试样板的时候总是会遇到一些问题,今天调试的时候现象是这样的:下载了程序不能运行,但是插上下载器又可以运行了.这就是有点奇怪了,检查了各个部分貌似也没什么问题,最后回到SWD下载接口来,突然想到测量RST信号的电平,一量是0V,这绝对不对啊,一检查复位发现电阻和电容焊接反了,这样的问题是很致命的,检查起来比焊接起来复杂了很多,所以在调试样板的时候认真仔细是必要的
你看一下你的BOOT的引脚,
在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。
BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。
也就是说,直接设置BOOT1=0.
当BOOT0=1时候,烧程序,
当BOOT1=0时候,执行你烧进去的程序