
板载stlink无法连接到设备
F103和G474的180°移相區別
STM32F103长时间运行,串口发送失败
STM32G474 BOOST电路双环PID的用法
foc2.0函数SVPWM_3ShuntCalcDutyCycles看不明白
STM32F103C8T6 TIM1 CH2输入捕获触发DMA的问题
STM32会存在单个IO口坏掉的情况吗?
STM32F103RET6 FLASH擦除失败问题
6.28周六签到打卡
请问有stm32f103驱动无刷电机的学习资料吗,找了很久都没有找到
如果程序内部部分内容变了,首先可以检查烧录校验和是否一直,其次可以使能写保护,硬件禁止软件去修改它。当然,如果能找到哪些逻辑去更改它就更好了。
通常发生在程序跑飞时 无意做了对flash的写操作。
还有就是,对有些数据,往往是数据较多的结构体没有初始化或没有完全初始化就被使用,也比较容易发生编程错误。
因为对一个未明确、正确初始化的地址去写时,若刚好写的地方是flash,则会直接报flash编程错误。
这种原因还比较常见。
实际情况确实是程序跑飞了,而且断电重启程序都不能正常运行。只有重新下载程序后才能正常运行。
[md]而且也不知道是什么原因导致程序跑飞。
程序跑飞原因比较多:
内存访问越界问题:检查数组访问和指针使用,确保在合法范围内。
中断方面问题:合理配置中断优先级,避免中断嵌套过深。合理配置堆栈大小。
内存管理方面问题:检查内存分配和释放,避免内存泄漏等问题。
电源原因 :检查电源质量、boot脚的焊接。注意特定电源脚,比方VCAP,PDR_ON这些;
异常复位: 看门狗复位、外部干扰导致复位脚电平不稳。注意程序逻辑,避免外界干扰;
有些通讯机制是连续的,中间的一些操作会导致故障,而复位后重新初始化和操作才能正常。
可以极致简化一下代码,看看普通功能(例如翻转IO)是否正常,从而判断是否和硬件环境有关。