完善资料让更多小伙伴认识你,还能领取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中断使能 ③现象: 打开该脚中断使能前,该脚外部有脉冲输入,打开使能后,这时即便外部没脉冲输入,中断也能进一次,这个比较危险。 ④怎么处理这记忆性的中断? 注:打开中断使能前已经清该脚的中断标志了,怎么还会进去? |
|
相关推荐
3个回答
|
|
|
|
|
|
根据你的描述,我也写了相似的代码进行测试,但没有出现已经清除标志还能进中断的现象,只进入了一次中断,清除了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); } |
|
|
|
只有小组成员才能发言,加入小组>>
518 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2901 浏览 2 评论
2397 浏览 1 评论
865浏览 2评论
683浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
415浏览 1评论
518浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
810浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:14 , Processed in 0.947954 second(s), Total 51, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号