您的位置 首页 ADAS

STM32学习之–外部中止

misch中定义的NVIC_InitTypeDef类型的结构体:typedefstruct{uint8_tNVIC_IRQChannel;中断向量uint8_tNVIC_IRQChannelPreem

misc.h中界说的NVIC_InitTypeDef类型的结构体:

typedef struct
{
uint8_t NVIC_IRQChannel;//中止向量

uint8_t NVIC_IRQChannelPreemptionPriority;//中止抢占优先级

uint8_t NVIC_IRQChannelSubPriority;//中止向量优先级

FunctionalState NVIC_IRQChannelCmd;//中止使能(ENABLE or DISABLE)
} NVIC_InitTypeDef;

中止优先级组stm32顶用4位来决议。

外部中止初始化

1.敞开时钟(外部中止要敞开GPIO时钟和AFIO时钟)

2.装备嵌套向量中止控制器NVIC

<1>挑选中止优先级组NVIC_PriorityGroup_0~NVIC_PriorityGroup_4。

调用函数NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)完结优先级组设定。

<2>装备中止源

装备中止向量NVIC_IRQChannel;

装备中止向量抢占优先级NVIC_IRQChannelPreemptionPriority;

装备中止向量呼应优先级NVIC_IRQChannelSubPriority;

使能中止NVIC_IRQChannelCmd; (ENABLE or DISABLE)

调用函数 NVIC_Init(NVIC_InitTypeDef* NV%&&&&&%_InitStruct)完结装备。

3.GPIO口初始化

GPIO口挑选GPIO_Pin

外部中止GPIO口为输入形式,GPIO_Speed不必设置。

GPIO输入形式GPIO_Mode

调用 GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 完结装备。

4.装备EXTI中止线作业形式。

调用GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);设置EXTI输入线。

装备输入线EXTI_Line;

装备输入线形式为中止形式.EXTI_Mode = EXTI_Mode_Interrupt;

装备中止触发方法.EXTI_Trigger = EXTI_Trigger_Falling;

使能中止.EXTI_LineCmd = ENABLE;

调用函数 EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/258277.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部