使用STM32F030C6外部中断的时候碰到一个很奇怪的问题:
1、中断线13一直响应(没有外部触发的这个中断);
2、在debug的时候,按下按键触发中断可以进入中断;
3、但下载到单片机中运行,发现中断没有被触发。
4、debug过程中看到中断触发请求寄存器PR13一直是1;
5、如果把延时函数去掉,debug界面看到中断触发请求寄存器PR13一直是0,其实中断还是一直响应,设置一个断点便知道;
根源问题:打开中断复位时钟函数用错了。这个函数RCC_AHBPeriphResetCmd(RCC_APB2Periph_SYSCFG,ENABLE);改为 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
关键字:STM32F030C6 外部中断
引用地址:
STM32F030C6外部中断问题
推荐阅读最新更新时间:2024-03-16 16:24
STM8 IO外部中断设置问题
STM8 IO外部中断设置问题(使用库函数) STM8,掉坑: 程序里面,首先开启了总中断,enableInterrupts(); // 打开总中断 在之后的程序里面,设置打开IO口外部中断,并设置触发电平,代码如下:(坑在这里,注意!!!) GPIO_Init(PORT_BLE_STA, PIN_BLE_STA, GPIO_Mode_In_PU_IT);//上拉,开中断 EXTI_SetPinSensitivity(EXTI_PIN_BLE_STA, EXTI_Trigger_Falling);//下降沿中断 之后杯具发生了,一旦IO口产生一个下降沿,程序马上死掉,看门狗复位。 定位发现,是因为不停
[单片机]
每一个GPIO如何配置成一个外部中断触发源
STM32中断分组 STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,那么依此类推,我们能得出一共有16 组,STM32 规定,每一组中同时只能有一个中断触发源工作,那么,最多工作的也就是16个外部中断。STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19 个外部中断为: 线 0~15:对应外部 IO 口的输入中断。 线 16:连接到 PVD 输出。 线
[单片机]
51单片机2个外部中断的应用
;51单片机的P1口上接有8只LED。 ;在外部中断0输入引脚P3.2接有一只按钮开关K1。 ;在外部中断1输入引脚P3.3接有一只按钮开关K2。 ;要求K1和K2都未按下时,P1口的8只LED呈流水灯显示, ;仅K1(P3.2)按下时,左右4只LED交替闪烁。 ;仅按下K2(P3.3)时,P1口的8只LED全部闪亮。 ;两个外中断的优先级相同。 ;============================================= ;用 PROTSUE 仿真界面如下: ;下列程序,可以满足要求. ORG 0000H SJMP MAIN ORG 0003H SJMP X0_INT ORG 0
[单片机]
写了一个 51单片机外部中断程序
/*以下是能在keilC 中变异的源码,直接粘贴过去就行,外部中断0(INT0)和外部中断1都有(INT1)*/ /*程序很简单,但是对新手来说还是很实用的*/ /*******************************************************************/ /* */ /* 单片机开发系统演示程序 - INT0 INT1 中断计数 */ /* */ /* 6位数码管显示 */ /*
[单片机]
定时器0和外部中断0的嵌套,分别实现流水灯和按键
#include STC12C5A60S2.h typedef unsigned char u8; typedef enum { Tim0_L_Int0_H = 1, Tim0_L_Int0_L, Tim0_H_Int0_L, }EnumCase; sbit LED1 = P2 ^ 4; sbit LED2 = P2 ^ 5; sbit LED3 = P2 ^ 6; sbit LED4 = P2 ^ 7; sbit BEEP = P1 ^ 0; sbit KEY1 = P3 ^ 2; sbit KEY2 = P3 ^ 4; //----------------------------
[单片机]
[单片机框架][bsp层][cx32l003][bsp_exti] EXTI配置和使用
一、 主体不同 内部中断:断是一个算法指令,是由软中断指令启动的中断。 外部中断:是单片机实时地处理外部事件的一种内部机制。 二、机制不同 内部中断:执行除法指令时,出现除数为0或商超过寄存器所能表达的范围,则产生类型为0 的内部中断。是优先级最高的内部中断。 外部中断:当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。 /******************************************************************************** * @file bsp_exti.
[单片机]
AVR的INT外部中断和PCINT中断之区别与使用
INT外部中断是几乎所有通用单片机,嵌入机中都会带有的,早期的51系列和arm系列也都有,然而大多数因为设计原因,多只有带两个INT,最近别人提到了一个“所有端口都可以外部中断”这样的说法,因为表示存疑,因此找了些资料,也就找到了avr328p自带的PCINT引脚功能 INT外部中断和AVR和PCINT具体区别如下: 差别1. INT限制在了两个端口上面,而PCINT则是所有接口都具备。 差别2. INT具有上沿,下沿,低电平,高电平触发这几种模式,而PCINT只有测量电平的变化这一个模式。 差别3. INT可以了解具体是哪个口触发的,而PCINT不行。 差别4. PCINT不会直接跳转入指定的程序,用
[单片机]
如何使用外部中断并在按下用户按钮时打开LED
使用 STM32CubeIDE 将连接到用户按钮的 GPIO 配置为具有下降沿触发的外部中断 (EXTI) 了解如何配置中断控制器:NVIC 通过按下打开 LED 的按钮来验证功能是否正确 2.2在STM32CubeIDE中创建工程↑ 主面板中的文件 新建 STM32 项目。 在此示例中,使用了 NUCLEO-L476RG 板。 在板选择器中选择 NUCLEO-L476RG 。 保存项目 2.3配置GPIO↑ 将 LED 引脚配置为 GPIO_Output(NucleoFL476RG 上的 PA5)。对于其他板,请查看其用户手册。 将按钮引脚配置为 GPIO_EXTI(NucleoL467RG 上的
[单片机]