浅析STM32外部中断易死机解决

embedded/2024/11/14 12:46:15/

本案例stm32死机或程序跑飞是实际产品中出现的,初步怀疑是外部中断口,有极强的干扰所致,于是拿着信号发生器实测,当信号发生器产生300KHz的信号,甚至到12MHz的信号时,期间,程序跑飞或死机。看门狗也无法重启。

解决点:1、初始化时,先关闭总中断,初始化完成后,再开启总中断

 /* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */__disable_irq();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_TIM2_Init();MX_USART1_UART_Init();MX_TIM3_Init();MX_IWDG_Init();MX_RTC_Init();/* USER CODE BEGIN 2 */  PVD_Config();TM1638_Init();light_Init();readConfigPara();light_ConfigPara();__enable_irq();/* USER CODE END 2 */

               2、IO中断时,在ISR里先关闭相应的管脚的中断,处理完成后,再开启相应管脚的中                          断。避免中断嵌套。

/* USER CODE BEGIN 0 */
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{/* EXTI line interrupt detected */LL_EXTI_DisableIT_0_31(GPIO_Pin);  if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u){      __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);HAL_GPIO_EXTI_Callback(GPIO_Pin);    }LL_EXTI_EnableIT_0_31(GPIO_Pin);
}
/* USER CODE END 0 */

笔记记之,以防将来的项目类似故障查询。


http://www.ppmy.cn/embedded/102046.html

相关文章

云原生系列 - Nginx(高级篇)

前言 学习视频:尚硅谷Nginx教程(亿级流量nginx架构设计)本内容仅用于个人学习笔记,如有侵扰,联系删学习文档: 云原生系列 - Nginx(基础篇)云原生系列 - Nginx(高级篇) 一、扩容 通过扩容提升整体吞吐量…

虚幻引擎UE5入坑记

前言 Unreal Engine 和Unity Engine作为目前主流的游戏引擎,各有优缺点。而我目前的工作还是以Unity开发为主,在使用Unity的过程中,总避免不了听到或看到过UE相关的东西,从开始的好奇到后面想要去学习它,但是&#xf…

c语言每日学习8.24

void reverse_string(char* str) 为什么不用传递数组的长度? 在C语言中,字符串通常是以空字符\0结尾的字符数组。因此,当你传递一个字符串(即字符数组的指针)给函数时,函数可以通过遍历字符串直到遇到空字…

Docker 部署 Kafka 可视化 Kafka-UI

前言 本文部署的Kafka-UI 是基于Docker Compose 部署 Kafka的KRaft模式,如有需要可访问下文链接 Docker Compose 部署 Kafka的KRaft模式 不用依赖 Zookeeper 此部署也适用于不是docker部署的kafka集群 1.启动 Kafka-UI 服务 1.1 kafka 来自docker安装 docker r…

在Linux中杀死占用某个端口的进程

以9997端口为例: 在 Linux 中可以通过以下步骤查看端口为 9997 的进程并杀死它: 一、查看占用端口 9997 的进程 使用 netstat 命令: netstat -tunlp | grep 9997这个命令会列出所有正在监听的 TCP 和 UDP 端口以及对应的进程信息&#xff0c…

掌握Nginx负载均衡中的请求重定向:技术指南与实践

引言 Nginx 是一款高性能的 HTTP 服务器和反向代理,广泛用于提供负载均衡服务。在复杂的网络架构中,根据业务需求,有时需要对客户端的请求进行重定向。这可以通过 Nginx 的配置实现,以确保流量被正确地引导到不同的URL或域名。本…

[图论]游戏

题目描述 B B B 经常与 A A A 一起玩游戏。今天,他们在一棵树上玩游戏。 A A A 有 m 1 m1 m1 块石子, B B B 有 m 2 m2 m2 块石子,游戏一开始,所有石头放在树的节点处,除了树根。 A A A 先移动石子。然后两人轮流移…

阿里云发送短信功能(Java)

(1)注册用户,并且开通短信套餐 (2) 点击快速学习,然后绑定测试的手机号码。 选用专用测试签名(自定义的话阿里可能会验证什么什么的比较麻烦) 然后在选取调用API (3&…