打印
[其他ST产品]

在STM32外部中断中设置GPIO口点灯,灯有微弱的闪烁,但达不到预期的效果

[复制链接]
767|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2024-5-9 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中断代码如下
void EXTI1_IRQHandler(void)
{
Delay_ms(10);
if(EXTI_GetITStatus(EXTI_Line1) == SET)
{
if(GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_5) == SET)
{
GPIO_ResetBits(GPIOA, GPIO_Pin_5);
}
if(GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_5) == RESET)
{
GPIO_SetBits(GPIOA, GPIO_Pin_5);
}
}
EXTI_ClearITPendingBit(EXTI_Line1);
}
其他地方应该没有问题,如果把中断函数中的代码换成一个简单的让GPIO口输出低电平LED是可以点亮的,但换成这样LED每当按键按下后只会有轻微的闪烁。
完全小白,望解惑。感激

使用特权

评论回复
沙发
一秒落纱| | 2024-6-19 11:47 | 只看该作者
在STM32外部中断中设置GPIO口点灯时,如果灯出现微弱的闪烁,可能是中断处理时间过长

使用特权

评论回复
板凳
夜阑风雨| | 2024-6-19 14:00 | 只看该作者
如果中断服务程序(ISR)执行时间过长,可能会导致系统无法及时响应其他中断或主循环,从而影响GPIO口的稳定输出。确保中断服务程序尽可能简洁高效。

使用特权

评论回复
地板
光辉梦境| | 2024-6-19 16:00 | 只看该作者
如果外部中断的优先级设置得不够高,可能会被其他中断抢占,导致GPIO口的状态变化不稳定。检查并正确设置中断优先级。

使用特权

评论回复
5
淡漠安然| | 2024-6-19 18:00 | 只看该作者
STM32的系统时钟如果不稳定,可能会影响定时器的精度和GPIO口的输出频率。确保系统时钟配置正确。

使用特权

评论回复
6
远山寻你| | 2024-6-19 20:00 | 只看该作者
检查GPIO口的配置是否正确,包括GPIO的模式(推挽输出、开漏输出等)、速度等参数。

使用特权

评论回复
7
三生万物| | 2024-6-19 22:00 | 只看该作者
如果在ISR中使用了软件延时,可能会因为处理器负载的变化而导致延时不准确,从而影响GPIO口的输出。尽量使用硬件定时器来控制延时。

使用特权

评论回复
8
江河千里| | 2024-6-20 02:00 | 只看该作者
如果电源不稳定或者电源噪声较大,可能会导致GPIO口输出不稳定。检查电源是否符合要求。

使用特权

评论回复
9
冰春彩落下| | 2024-6-20 06:00 | 只看该作者
检查电路连接是否正确,LED灯和限流电阻是否选择合适,以及是否有其他硬件故障。

使用特权

评论回复
10
别乱了阵脚| | 2024-6-20 11:00 | 只看该作者
建议使用逻辑分析仪来观察GPIO口的实际输出波形,或者使用示波器来检查电源的稳定性。

使用特权

评论回复
11
暖了夏天蓝了海| | 2024-6-20 15:00 | 只看该作者
是不是调用中断比较频繁比较快导致的?

使用特权

评论回复
12
小小蚂蚁举千斤| | 2024-6-23 17:32 | 只看该作者
轻微闪烁其实还是跟程序逻辑有问题的

使用特权

评论回复
13
AdaMaYun| | 2024-6-24 23:01 | 只看该作者
把中断函数中的代码换成一个简单的让GPIO口输出低电平LED是可以点亮的

使用特权

评论回复
14
LOVEEVER| | 2024-6-25 19:44 | 只看该作者
STM32外部中断中设置GPIO口点灯,还得看程序

使用特权

评论回复
15
wang6623| | 2024-6-30 15:01 | 只看该作者
避免直接在中断中使用延迟函数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1227

主题

3251

帖子

0

粉丝