历史上的今天
今天是:2024年11月05日(星期二)
2021年11月05日 | STM32F103ZET6 — EXTI
2021-11-05 来源:eefocus
STM32F103ZET6 支持 20 个外部中断输入(EXIT0~EXIT19),其中有4个:
EXTI线16连接到PVD输出
EXTI线17连接到RTC闹钟事件
EXTI线18连接到USB唤醒事件
EXTI线19连接到以太网唤醒事件(只适用于互联型产品)
另外的16个均可以作为外部输入中断,其中:
EXIT0~EXIT4 有独立的中断向量
EXIT6~EXIT9 共享一个中断向量 EXTI9_5_IRQHandler
EXIT10~EXIT16 共享一个中断向量 EXTI15_10_IRQHandler
共享的中断向量需要在对应的 ISR 中通过读取 Pending 的标志位来判断到底是哪个信号上触发的中断
单板上,PE5/PE6 引脚通过通过上拉电阻连接到 Key1 和 Key2 上,Key1 和 Key2 的另一端连接 GND。
初始化配置 PE5/PE6 成为外部中断的流程如下:
1. 开启 AFIO 和 GPIO 的时钟
2. 配置 GPIO PE5/PE6 为上拉输入
3. 通过 AFIO 的 EXITCR 寄存器组配置 PE5/PE6 为外部 EXIT 中断的输入引脚
4. 配置 EXIT 寄存器,使能 PE5/PE6 的中断
5. 由于按下 Key 后,电平为低,故配置为下降沿产生中断
void SK_EXITInit(void)
{
GPIO_InitTypeDef stGpioInit;
EXTI_InitTypeDef stEXTIInit;
/// Step 1 : Power On the AFIO and GPIOE
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);
/// Step 2 : Config the NVIC
SK_SK_EXITNVICConfig();
/// Step 3 : Config (PE5/PE6) As pull up input
stGpioInit.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6;
stGpioInit.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOE, &stGpioInit);
/// Step 4 : Select the output interrupt source
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource5);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource6);
/// Step 5 : Select the output interrupt source
stEXTIInit.EXTI_Line = EXTI_Line5 | EXTI_Line6;
stEXTIInit.EXTI_Mode = EXTI_Mode_Interrupt;
stEXTIInit.EXTI_Trigger = EXTI_Trigger_Falling;
stEXTIInit.EXTI_LineCmd = ENABLE;
EXTI_Init(&stEXTIInit);
}
由于 EXIT5~EXIT9 共享一个中断向量,故需要在中断中判断 Pending 标志位,便可知是哪个中断线上引起的中断:
void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line5) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line5);
SK_SetLedStatus(SK_LED_1, SK_LED_ON);
delay_ms(5000);
SK_SetLedStatus(SK_LED_1, SK_LED_OFF);
}
if(EXTI_GetITStatus(EXTI_Line6) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line6);
SK_SetLedStatus(SK_LED_2, SK_LED_ON);
delay_ms(5000);
SK_SetLedStatus(SK_LED_2, SK_LED_OFF);
}
}
史海拾趣
|
用MSP430P315 单片机的A/D 转换器,实现阻性温度传感器的电阻检测;用查表和线性插值结合的方法,简化标度变换的算法结构。对电池电压的降低进行补偿的同时分析补偿电阻的精度对温度检测的影响。 … 查看全部问答> |
|
/************************************************ *技术直接转销售还是先转技术支持再转销售好呢? ************************************************/ 我是09年毕业的,毕业的时候,是在一家医疗器材公司工作。 最近换了一家公司,是搞 ...… 查看全部问答> |
|
老师让做一个dsp和pc通过并口epp通信的东西,在xp下对并口操作是不是要写个驱动?老板让我用WinDriver,我想问问关于并口开发要怎样调试呢?以前没有做过关于并口通信东西,所以想请问各位老大,希望能给指点一下… 查看全部问答> |
|
在Wince中添加一个较大的位图,设想有一个相对较小的取景框,当这个框快速移动时,我想显示屏幕上位图移动的动画效果。我在evc中代码如下: CBitmap m_bitmap; BITMAP bm; ...… 查看全部问答> |
|
4月21日(周六)东方标准特邀请嵌入式软件仿真开源(SkyEye)项目核心成员、AKA 嵌入式小组成员康烁,为大家做《利用SkyEye进行操作系统分析及SkyEye的最新进展》的讲座。 康烁--作为自由软件爱好者,精通嵌入式系统移植,驱动开发,多年嵌入式开发 ...… 查看全部问答> |




