完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
①GPIO_Pin_5下降沿中断初始化:
GPIOA_ModeCfg( GPIO_Pin_5, GPIO_ModeIN_PU ); GPIOA_ITModeCfg( GPIO_Pin_5, GPIO_ITMode_FallEdge ); // 下降沿唤醒 GPIOA_ClearITFlagBit( GPIO_Pin_5 ); //清GPIO_Pin_5中断标志位 R16_PA_INT_EN &= ~GPIO_Pin_5; //GPIO_Pin_5中断不使能 PFIC_EnableIRQ( GPIO_A_IRQn ); ②应用程序: 中断函数中:另一个脚中断判断状态后打开GPIO_Pin_5中断使能,代码具体如下: GPIOA_ClearITFlagBit( GPIO_Pin_5 ); //清GPIO_Pin_5中断标志位 R16_PA_INT_EN |= GPIO_Pin_5; //GPIO_Pin_5中断使能 ③现象: 打开该脚中断使能前,该脚外部有脉冲输入,打开使能后,这时即便外部没脉冲输入,中断也能进一次,这个比较危险。 ④怎么处理这记忆性的中断? 注:打开中断使能前已经清该脚的中断标志了,怎么还会进去? |
|
相关推荐
4个回答
|
|
|
|
|
|
|
|
|
根据你的描述,我也写了相似的代码进行测试,但没有出现已经清除标志还能进中断的现象,只进入了一次中断,清除了pin5的中断标志,打开了pin5的中断使能。(在pin5没有使能中断时产生下降沿标志位会置,但中断中清除即可)
我不知道你测试的外部条件是怎么样的;初始化先设置PIN5脚为下降沿中断,但先不使能中断;这时给PIN5脚输入一个脉冲,之后关闭脉冲输入,再打开中断使能,看看这时会不会有中断进入 |
|
|
|
|
|
有可能是我模拟的外部输入的脉冲太快了,超过了中断处理速度
#define PK GPIO_Pin_14 int main() { SetSysClock( CLK_SOURCE_PLL_80MHz ); GPIOB_ModeCfg( PK , GPIO_ModeIN_Floating ); //PK=1M while( 1 ) { if( GPIOB_ReadPortPin( PK ) ) GPIOB_SetBits(LED); else GPIOB_ResetBits(LED); } |
|
|
|
|
|
...
GPIOB_ModeCfg( GPIO_Pin_4, GPIO_ModeIN_PU ); GPIOB_ITModeCfg(GPIO_Pin_4, GPIO_ITMode_HighLevel); PFIC_EnableIRQ( GPIO_B_IRQn); //中断使能 我这置于高电平触发中断,但写入后,中断一直处于触发状态,难道引脚在输入态都是高电平,什么鬼 |
|
|
|
|
只有小组成员才能发言,加入小组>>
347 浏览 0 评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
861 浏览 0 评论
1461 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
3417 浏览 2 评论
2822 浏览 1 评论
安卓手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
1808浏览 1评论
1461浏览 1评论
348浏览 0评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
863浏览 0评论
467浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 04:21 , Processed in 2.116676 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
603