完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F429IGb 在触摸屏驱动的touch.c 文件中,使能触摸屏中断,然后立马进入中断,回调中断回调函数 rx_callback ,这里释放一个信号量并关中断,导致等待信号量的地方意外获得信号量,等这边处理完后打开中断又进入中断,如此反复,自己形成了死循环。
为什么会这样,是touch.c里面使用方法不对,还是rt_pin_attach_irq 初始化gpio中断有bug? rt_pin_attach_irq 使能gpio中断后会立马进入中断函数吗? 谢谢! |
|
相关推荐
5个回答
|
|
中断触发有不同模式,上沿触发,下沿触发,高低电平触发,边沿触发等,请核对中断触发设置是否正确。
|
|
|
|
触摸屏触摸产生的中断。我使用的引脚是H6,单步调试代码发现,中断函数
EXTI9_5_IRQHandler -> HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_6), 函数代码如下: /* EXTI line interrupt detected */ if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); // 清中断标志 HAL_GPIO_EXTI_Callback(GPIO_Pin); } 在stm32f4xx_hal_gpio.h 头文件中有如下定义: #define __HAL_GPIO_EXTI_GET_IT(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__)) #define __HAL_GPIO_EXTI_CLEAR_IT(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__)) 根本没有清理这个线的中断标志 没法编辑了 |
|
|
|
|
|
|
|
使能以前清除一下中断标志试试
|
|
|
|
一、先将touch.c中的配置函数、触摸中断的处理函数贴出来看看,你这样说,我们都只有你说的信息。
二、另外“这里释放一个信号量并关中断”这句话什么意思,中断中自行关中断是吗? |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
836 浏览 0 评论
6340 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2836 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
3101 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
33230 浏览 11 评论
73662 浏览 21 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:54 , Processed in 0.672684 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号