完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
F429 在内核水平上搭载了一个异常响应系统, 支持为数众多的系统异常和外部中断。
其中系统异常有10 个,外部中断有91 个。除了个别异常的优先级被定死外,其它异常的 优先级都是可编程的。有关具体的系统异常和外部中断可在标准库文件stm32f4xx.h 这个头 文件查询到,在IRQn_Type 这个结构体里面包含了F4 系列全部的异常声明。 1、系统异常中断 2、外部中断(全部) 3、优先级 如果有多个中断同时响应,抢占优先级高的就会抢占优先级低的优先得到执行,如果抢占优先级相同,就比较子优先级。如果抢占优先级和子优先级都相同的话,就比较他们的硬件中断编号,编号越小,优先级越高。 5、如何开关中断示例 串口 USART_ITConfig(DEBUG_USART1, USART_IT_RXNE, ENABLE); /* 使能串口接收中断 */USART_ITConfig(DEBUG_USART1, USART_IT_RXNE, DISABLE); /* 关闭串口接收中断 */ 定时器 TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE); /* 使能定时器更新中断 */TIM_ITConfig(TIM4, TIM_IT_Update, DISABLE); /* 关闭定时器更新中断 */ DMA DMA_ITConfig(DEBUG_SPI2_RX_DMA_STREAM,DMA_IT_TC,ENABLE);/* 开启传输完成中断*/DMA_ITConfig(DEBUG_SPI2_RX_DMA_STREAM,DMA_IT_TC, DISABLE);/*关闭传输完成中断*/ EXTI中断线(得重新配置) SYSCFG_EXTILineConfig(KEY3_INT_EXTI_PORTSOURCE, KEY3_INT_EXTI_PINSOURCE); /* 连接 EXTI 中断源 到key3引脚 */EXTI_InitStructure.EXTI_Line = KEY3_INT_EXTI_LINE; /* 选择 EXTI 中断源 */EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; /* 中断模式 */EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;/* 上升沿触发 */EXTI_InitStructure.EXTI_LineCmd = ENABLE; /* 使能中断/事件线 */EXTI_Init(&EXTI_InitStructure);SYSCFG_EXTILineConfig(KEY3_INT_EXTI_PORTSOURCE, KEY3_INT_EXTI_PINSOURCE); /* 连接 EXTI 中断源 到key3引脚 */EXTI_InitStructure.EXTI_Line = KEY3_INT_EXTI_LINE; /* 选择 EXTI 中断源 */EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; /* 中断模式 */EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;/* 上升沿触发 */EXTI_InitStructure.EXTI_LineCmd = ENABLE; /* 关闭中断/事件线 */EXTI_Init(&EXTI_InitStructure); 6、抢断优先级、响应优先级说明 l 抢断优先级高的,能打断抢断优先级低的; l 当抢断优先级相同时,执行顺序由响应优先级决定; l 当抢断优先级、响应优先级都相同时,则按中断向量表的顺序执行。 如果抢断优先级一样,则不会打断,而是等待完成后执行。 比如有ABCD四个中断: 一、当A正在执行,又来了中断B,由于B的抢断优先级更高,所以会打断A的运行; 二、当A正在执行,又来了中断C,由于C抢断优先级《=A,所以会等待A完成后,再执行C; 三、当A正在执行,同时来了C和D,由于ABC优先级都相同,所以不会打断,而C的响应优先级比D高,所以在A完成后,会先执行C,再执行D。 7、定时器说明 STM32F42xxx 系列控制器有2 个高级控制定时器、10 个通用定时器和2 个基本定时器,还有2 个看门狗定时器。 控制器上所有定时器都是彼此独立的,不共享任何资源。各个定时器特性参考下表: 注意:其中最大定时器时钟可通过RCC_DCKCFGR 寄存器配置为90MHz 或者180MHz。 7.1基本定时器 主要两个功能,第一就是基本定时功能,生成时基,第二就是专门用于驱动数模转换器(DAC)。 基本定时器的内部时钟(CK_INT)频率默认设置为90MHz。 7.2高级/通用定时器 高级控制定时器(TIM1 和TIM8)和通用定时器在在基本定时器的基础上引入了外部引脚,可以输入捕获和输出比较功能。高级控制定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能都是针对工业电机控制方面。 一般情况下,我们都是使用内部时钟,内部时钟CK_INT 即来自于芯片内部,等于180M。 引脚分布见下表: 7.3定时器拓展补充-主要特性 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1584 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1526 浏览 1 评论
958 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
672 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1567 浏览 2 评论
1852浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
623浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
508浏览 3评论
518浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
494浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 17:19 , Processed in 0.986259 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号