[STM32L1]

STM32L152R8T6运行过程中卡死返回到systeminit

[复制链接]
2011|7
手机看帖
扫描二维码
随时随地手机跟帖
Neyzoter|  楼主 | 2018-3-8 12:35 | 显示全部楼层 |阅读模式
首先我用STM32RET6的Nucleo板子完成了代码,包括定时器、串口、led灯。

而后自己画的板子,用的STM32L152R8T6代替了RET6,同时将启动文件更换为了xB.s,芯片对应的h文件也更改完毕。编译成功。

但是程序运行的时候,经常卡死。我用debug调试的时候发现,代码会突然退回到启动文件的systeminit,然后停止运行。同时,用sp寄存器的地址看上一步的代码也是systeminit,也就是找不到具体在哪里造成了卡死。同时,也发现卡死的地方有多处,运气好的话都能过去,运气不好就会卡住。如果未卡死,就会循环点亮或者熄灭led灯,这里未出现卡死的情况。

会不会是芯片的问题?淘宝上买的十多块钱的R8T6。因为代码只跟换了启动文件等必要的文件,串口定时器等代码均未改变,用ret6未出现该情况。又或者是因为我的板子画的问题?因为我没有用ret6调试我的板子,直接更换为了r8t6。

Neyzoter|  楼主 | 2018-3-15 11:12 | 显示全部楼层
本帖最后由 Neyzoter 于 2018-3-15 11:15 编辑

2018年3月15日更新

发帖时的问题——跑程序经常卡死(偶尔进入硬件while,基本是返回到system_init,然后停止),特别是复杂的程序。

今天发现,因为我画了LSE晶振但是没有焊接上去。如图晶振.png所示。

而后我将晶振焊接上去,问题消除。目前跑了四次都没有卡死。以前跑四次多有可能卡死3到4次。
各位知不知道为什么会出现这种情况?我没有用到RTC功能。




晶振.png

使用特权

评论回复
dongnanxibei| | 2018-3-8 16:23 | 显示全部楼层
这是个函数吧。

使用特权

评论回复
香水城| | 2018-3-8 22:39 | 显示全部楼层
芯片可能在不停复位,重点检查下电源和时钟配置。

你可以 用示波器 看看复位脚的电平情况做确认。

可以找个简单官方参考代码烧进去看看,先大致排除软硬件方面的原因。

使用特权

评论回复
蝴蝶泉2018| | 2018-3-9 00:43 | 显示全部楼层
香水城 发表于 2018-3-8 22:39
芯片可能在不停复位,重点检查下电源和时钟配置。

你可以 用示波器 看看复位脚的电平情况做确认。

再给你一个绝招...有个寄存器是可以查出上次的reset source.....至于是那个,你查查RM手册咯...查不到再来问...

使用特权

评论回复
loony85| | 2018-3-9 06:44 | 显示全部楼层
检查一下时钟配置

使用特权

评论回复
Neyzoter|  楼主 | 2018-3-9 20:20 | 显示全部楼层
蝴蝶泉2018 发表于 2018-3-9 00:43
再给你一个绝招...有个寄存器是可以查出上次的reset source.....至于是那个,你查查RM手册咯...查不到再来 ...

嗯嗯,发现都是SFTRSTF,PORRSTF,PINRSTF这几个位置1,和复位引脚的复位情况相同。
但是我下入简单的定时器+LED+adc后,芯片未卡死过。只有在运行我的物联网模组网络连接和数据传输时才会卡死。而且我在用其他的板子调试时(程序相同,只是换了芯片对应h文件和启动文件),没有出现卡死的情况。
我现在初步怀疑淘宝买的芯片内部有问题,准备再买一些芯片来调试。

使用特权

评论回复
gejigeji521| | 2018-3-15 12:54 | 显示全部楼层
估计是芯片不行

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝