解除STM32F4锁芯片的问题

废话不多说,直接讲一下我是如何把所得芯片给解除故障

一般都得先使用ST-Link Utility去除STM32芯片读写保护
1.使用ST-Link连接到STM32芯片,点击Connect。
2.存在读保护。
3.修改选项字节(option bytes)。
4.将读保护等级修(Read out protection)改为Level 0,把BOR 设置为OFF。
5.打钩的扇区会添加写保护,点击Unselect all不选择写保护,然后点击apply。
6. 写入选项字节后Flash会被擦除。
7. 能正常写入程序。
详细请参考以下这篇博客

https://blog.youkuaiyun.com/u014717398/article/details/79138620

如果还是不能下载程序,接下来就要进行下一步
就是通过改变下载方式的BOOT0 和BOOT1
在这里插入图片描述

1.通过ISP下载模式下载,把BOOT0=1,接上stlink 的3.3v,通过ST-Link Utility的program下载程序(建议下载LED例程)到板子里。
2.之后再把BOOT0=0,接上stlink的GND,即用户闪存作为启动方式,通过ST-Link Utility的program下载程序到板子里。
3.经过这两个步骤,板子应该就可以正常下载了。
具体参考以下这篇博客

https://blog.youkuaiyun.com/weixin_43739167/article/details/105678483?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control

如何使用ST-Link Utility下载程序,参考这个文章
https://www.cnblogs.com/xingboy/p/9646759.html

### STM32 上电后进入 Idle 状态并卡死的原因及解决方案 #### 1. IDLE 中断无限触发问题 当使用 UART DMA 发送功能时,如果启用了 IDLE 中断,则可能会遇到板子卡死的情况。这通常是由于 IDLE 中断被无限触发所引起的。为了验证这一点,在中断服务函数中设置了日志记录,结果显示该日志不断重复输出[^1]。 针对此情况,建议禁用或重新评估是否确实需要启用 IDLE 中断。如果不必要的话,可以考虑将其关闭来解决问题: ```c // 关闭IDLE中断 USART_CR1(USARTx) &= ~USART_CR1_IDLEIE; ``` #### 2. 配置文件路径与驱动管理 对于 AC7811 单片机而言,其配置文件位于 `manage run` 下面的 `ATC Drivers` 文件夹内。需要注意的是,并非所有的配置项都显式存在于默认目录结构下,因此可能需要手动添加所需的配置条目[^2]。 虽然这条信息主要适用于特定型号单片机,但在处理其他类型的微控制器(如 STM32)时也可以借鉴这种思路——确保所有必要的外设初始化代码都被正确加载到项目中。 #### 3. 修改预定义的中断处理程序 在某些情况下,默认提供的中断处理程序可能不适合当前的应用场景。例如,在 `stm32f4xx_it.c` 文件中的现有实现或许无法满足需求。这时可以通过自定义的方式调整这些函数的行为,但要注意对外部使用的全局变量进行适当声明[^3]。 具体来说,可以在原有基础上增加逻辑判断或其他控制语句以防止潜在的风险因素影响正常运行流程。 #### 4. 中断重入检查 尽管初步测试表明不存在明显的中断重入现象,但这并不完全排除此类可能性的存在。为了避免因意外条件引发的问题,推荐采用标志位的方法进一步确认是否存在多线程环境下资源竞争的情况[^4]。 通过引入互斥锁机制或者简单的布尔型标记变量,能够有效阻止同一时刻多个实例同时访问共享数据区的可能性。 #### 5. 排除 Hard Fault 错误 考虑到指针越界、堆栈溢出等问题通常会引起更严重的错误(即硬故障),而本案例并未表现出典型的硬故障特征,故可暂时忽略这方面的影响[^5]。 不过仍然值得定期审查应用程序的整体健壮性和稳定性,尤其是在涉及复杂的数据交换过程以及长时间连续工作的场合之下。 综上所述,要解决 STM32 上电之后陷入 idle 并卡住的现象,可以从以下几个方面入手:仔细排查是否有不必要的 IDLE 中断源;确保所有必需的硬件配置均已妥善安排到位;谨慎修改现有的中断处理器以便更好地适应实际工作环境的要求;最后还要保持警惕以防万一发生任何未预见的技术难题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值