历史上的今天
今天是:2024年08月26日(星期一)
2021年08月26日 | STM32 中断配置 自我学习总结
2021-08-26 来源:eefocus
简单记录一下STM32 的中断配置说明!
----第一部分是---中断向量表-----
--------这个只是简单参照----不同版本也有些不一样--但是大同小异----自己可以到启动文件---startup_stm32f10x_hd.s中去查找。
----第二部分---中断优先级配置
static void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //分组
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; //主要地方
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //次优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
----第三部分---中断端口等配置
void EXTI_PA0_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE);
NVIC_Configuration();
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //端口上拉
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); //PA0为外部中断输入端
EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //中断模式---另一个是事件模式
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //触发方式是下降沿
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //使能
EXTI_Init(&EXTI_InitStructure);
}
----第四部分---中断函数
void EXTI0_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line0) != RESET) //产生相应中断
{
.........................
EXTI_ClearITPendingBit(EXTI_Line0); //清除中断标志位
}
}
下一篇:STM32 ADC自我学习总结
史海拾趣
|
MPLAB IDE V8.30下编译出现问题.这是我的第一个PIC单片机程序,请牛人帮忙。 #include void main(void){ TRISCbits.TRISC0 = 0; //rc0 引脚设置为输出引脚 TRISDbits.TRISD0 = 0; PORTC ...… 查看全部问答> |
|
我们知道在x86架构上,我们可以通过汇编指令CPUID获取CPU的相关信息。 但是在ARM架构上,我们要如何获取类似于x86的CPU信息呢? 请高手指点。… 查看全部问答> |
|
急需一个代码,能否帮忙下载一下?感激不尽。。 源码地址 http://www.programsalon.com/downloads27/sourcecode/windows/detail86711.html 帮别人求的 对数学方面的编程不怎么熟悉 先找个参考 有是会员的能帮个忙吗? 我的信箱:fghl ...… 查看全部问答> |
|
24V接的是感性负载,所以想通过这个方法隔离来防止24V对整块板子的干扰。 请问下这个电路可行吗?为什么? 加二极管之后,24V和5V就没有共地了,但是到底会不会有干 ...… 查看全部问答> |
|
我用汇编编写TimerA0中断函数,主文件是c文件。主文件应该怎么调用才行? 我是这么做的,结果不行。 #include \"msp430f123.h\" extern __interrupt void TimerA0_isr() void main() { //stop wdt // ...… 查看全部问答> |
|
使用的DSP是STM32F28335,还有一个AD9850。想用dsp控制AD9850,但是实验板上的SPI接口被接上别的东西了,所以想用MCBSP做SPI的功能,但是MCBSP一次最多发送32位,而ad9850需要输入40位的控制字。想问问高手,这样用MCBSP模拟SPI的功能 可以实 ...… 查看全部问答> |
|
电源管理IC在线设计仿真工具Easy DesignSim帮你简化电源系统设计 电源管理IC在线设计仿真工具Easy DesignSim帮你简化电源系统设计 富士通半导体推出了一款用于电源管理IC(PMIC)的在线设计仿真工具,叫Easy DesignSim™。使用富士通丰富电源管理IC产品线(如转换器、开关、电源及充电控制装置等 ...… 查看全部问答> |







