你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
butterflyspring 发表于 2018-4-2 10:17 中断首先需要各个时钟开启,GPIO功能使能,中断开启,优先级开启.实在找不到,先调试好的代码,查看寄存器,再调 ...
select326 发表于 2018-4-2 10:09 我是新手,还请指点
wenyangzeng 发表于 2018-4-2 10:52 void EXT0_IRQHandler(void) {
select326 发表于 2018-4-2 11:26 void EXTI4_IRQHandler(void) { delay_ms(10);//消抖
MrJiu 发表于 2018-4-2 11:56 牛逼。。。中断里面硬件延时10ms。。。膜拜!!!
查看全部评分
toofree 发表于 2018-4-2 23:16 中断中延时10ms,这个不应该。但是你说的不进中断,那可能另有问题。 void EXTI4_IRQHandler(void) {
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
1q1q
12345
11
11.08
谢谢,按照这个思路我再查查
void EXT0_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line0) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
void EXTI4_IRQHandler(void)
{
delay_ms(10);//消抖
EXTI_ClearITPendingBit(EXTI_Line4); //清除LINE4上的中断标志位
}
我在这里面打断点,无法触发按键没任何响应。。。
EXTI_GenerateSWInterrupt(EXTI_Line4);
就可以判断EXTI4中断配置是否正确
牛逼。。。中断里面硬件延时10ms。。。膜拜!!!
问题是,都不执行中断里面的代码。。。。
再说了,从正点原子拿的例子拿的代码
想进入中断的话我觉得while里边起码要有个判断按键按下的函数吧,要记得加上消抖。
评分
查看全部评分
void EXTI4_IRQHandler(void)
{
delay_ms(10);//消抖
EXTI_ClearITPendingBit(EXTI_Line4); //清除LINE4上的中断标志位
}
经过查看你的程序,你的外部中断使能在哪里?
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
加上使能试试,见下图。
评分
查看全部评分
这个确实没有。但是,正点原子的例子是可以执行的。
后来我比较了下,我发下一个RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
有这句,中断就能执行,没有的话,原子的例子也不能中断。很奇怪,串口和中断有什么关系?
1、中断未打开;
2、中断开错了;
如果深入你会发现还有一个问题会造成无按键中断产生:
就是中断的映射位与其他中断映射位冲突。