Quiero utilizar el conocimiento incorporado para configurar las interrupciones de 4 botones. El siguiente es el código de referencia de la función de inicialización de la interrupción externa stm32.
Le enviaré una función de versión de registro relacionada para configurar interrupciones externas. Puede consultar lo siguiente: //Función de configuración de interrupciones externas
// Solo para GPIOA~I; no incluye PVD, RTC, USB_OTG, USB_HS, Wake on Ethernet, etc.
//Parámetros:
//GPIOx: 0~8, representa GPIOA~I
// BITx: bits que deben habilitarse;
//TRIM: modo de disparo, 1, flanco ascendente; 2, flanco descendente 3, cualquier nivel de disparo
// Esta función solo puede configurar un puerto IO a la vez. Es necesario llamar a varios puertos IO varias veces
//Esta función habilitará automáticamente la línea de interrupción y protección correspondiente
void?Ex_NVIC_Config( u8?GPIOx, u8?BITx, u8?TRIM)?
{?
u8?EXTOFFSET=(BITx4)*4;?
RCC-gt ;APB2ENR|=1lt;lt;14;? //¿Habilitar reloj SYSCFG?
SYSCFG-gt;EXTICR[BITx/4]amp;=~(0x000Flt;lt;EXTOFFSET) ; //¡Borrar configuración original! ! !
SYSCFG-gt; EXTICR[BITx/4]|=GPIOxlt; lt; EXTOFFSET; //¿EXTI.BITx está asignado a GPIOx.BITx?
//Configurado automáticamente p >
EXTI-gt;IMR|=1lt;lt;BITx; //¿Habilitar interrupciones en línea?BITx (si desea deshabilitar las interrupciones, simplemente haga lo contrario)
if(TRIMamp; 0x01 )EXTI-gt; FTSR|=1lt; BITx; //línea? Activador de flanco descendente en BITx
if(TRIMamp;0x02)RTSR|=1lt;BITx ; //line? Los eventos en BITx se activan en los flancos ascendentes y descendentes
}?