你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f103c8t6:没有对flash进行任何操作,flash的内容发生变化了。具体是哪些原因?如何调试排查原因。

[复制链接]
rhinezj 提问时间:2024-9-9 17:24 / 未解决
收藏 评论7 发布时间:2024-9-9 17:24

举报

7个回答
butterflyspring 回答时间:2024-9-9 17:35:21
FLASH 的里面内容的修改,需要很严格的条件才行,需要按照一定的时序操作才能启动内部升压,升压后才可能去修改里面的内容。


如果程序内部部分内容变了,首先可以检查烧录校验和是否一直,其次可以使能写保护,硬件禁止软件去修改它。当然,如果能找到哪些逻辑去更改它就更好了。
xmshao 回答时间:2024-9-9 17:40:55
可能无意中发生针对flash的非法操作,即本意并不想对flash进行编程操作但实际上发生了对flash的写操作。


通常发生在程序跑飞时 无意做了对flash的写操作。


还有就是,对有些数据,往往是数据较多的结构体没有初始化或没有完全初始化就被使用,也比较容易发生编程错误。


因为对一个未明确、正确初始化的地址去写时,若刚好写的地方是flash,则会直接报flash编程错误。


这种原因还比较常见。
rhinezj 回答时间:2024-9-9 17:55:36

xmshao 发表于 2024-9-9 17:40
可能无意中发生针对flash的非法操作,即本意并不想对flash进行编程操作但实际上发生了对flash的写操作。</p>
<p>

实际情况确实是程序跑飞了,而且断电重启程序都不能正常运行。只有重新下载程序后才能正常运行。

rhinezj 回答时间:2024-9-9 17:57:23

rhinezj 发表于 2024-9-9 17:55
实际情况确实是程序跑飞了,而且断电重启程序都不能正常运行。只有重新下载程序后才能正常运行。
[/m ...

[md]而且也不知道是什么原因导致程序跑飞。

xmshao 回答时间:2024-9-10 11:48:38

rhinezj 发表于 2024-9-9 17:57
而且也不知道是什么原因导致程序跑飞。

程序跑飞原因比较多:

内存访问越界问题:检查数组访问和指针使用,确保在合法范围内。

中断方面问题:合理配置中断优先级,避免中断嵌套过深。合理配置堆栈大小。

内存管理方面问题:检查内存分配和释放,避免内存泄漏等问题。

电源原因 :检查电源质量、boot脚的焊接。注意特定电源脚,比方VCAP,PDR_ON这些;

异常复位: 看门狗复位、外部干扰导致复位脚电平不稳。注意程序逻辑,避免外界干扰;

李成2025 回答时间:2025-7-9 00:18:10
借楼问一下,stm32f103单片机+oled显示屏 问题:调试模式可以跑 数据显示没有任何问题 ,但是一断开调试模式他自己跑显示数据不对,表现数据为0,最后每次需要rst他才能正常显示。这个是为什么呢,网上的一些方法,什么魔术棒里的配置都试过不行。求助大佬
butterflyspring 回答时间:2025-7-9 09:41:56
李成2025 发表于 2025-7-9 00:18
[md]| 借楼问一下,stm32f103单片机+oled显示屏 问题:调试模式可以跑 数据显示没有任何问题 ,但是一断开 ...

有些通讯机制是连续的,中间的一些操作会导致故障,而复位后重新初始化和操作才能正常。

可以极致简化一下代码,看看普通功能(例如翻转IO)是否正常,从而判断是否和硬件环境有关。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版