久芯网

STM32Lxx 程序无法执行到main 是怎么回事?

avatar 望柳村 提问时间: 2023-08-14 07:04:20 / 未解决

从官网上下载了stm32l1xx标准库,替换了以前低版本的标准库后,发现程序跑不起来了。

LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP

程序调试到到 BX R0 后就不执行了,全速运行模式也是无法运行起来,这个是怎么回事?

4个回答
  • avatar 废鱼
    回答时间: 2023-08-14 07:21:00

    楼主,您好。请检查一下时钟配置,可能是时钟配置和实际电路板的配置不一样导致。默认的外部晶振一般是8MHz的。

  • avatar 望柳村
    回答时间: 2023-08-14 07:39:29
    废鱼 发表于 2021-12-20 09:48
    楼主,您好。请检查一下时钟配置,可能是时钟配置和实际电路板的配置不一样导致。默认的外部晶振一般是 ...

    [md]我是用的是外部晶振8M,主频到24000000。这个单步时也能看到

  • avatar xmshao
    回答时间: 2023-08-14 08:12:27

    你不妨从新库中找个简单的测试代码放进去看看,是否还是这样?如果依然这样建议重点检查下你的供电这块。如果测试代码工作正常, 你就重点检查下你的时钟配置这块。尤其SystemClock_Config(void)里关于内部电压调节范围及时钟配置的参数,你可以跟例程做些比较。

  • avatar 望柳村
    回答时间: 2023-08-14 08:44:41

    十分感谢耐心的恢复,终于发现问题了,包括前期的reset时RTC时间会被重新设置。都是因为我再系统初始化之前,对部分管腿进行了初始化操作导致的。把管腿的初始化都放到功能模块初始化时再进行,就没有了这些现象!

会员中心 微信客服
客服
回到顶部