STM32模块初始化模版和函数寄存器汇总

发布时间 : 星期一 文章STM32模块初始化模版和函数寄存器汇总更新完毕开始阅读

TIM定时器

TIM1

TIM1 PWM波模式

TIM1 基本配置初始化

void TIM1_BASE_Configuration(void) {

TIM_DeInit(TIM1);//将定时器1寄存器设置为缺省值 /*TIM1基本设置*/

TIM_TimeBaseInitTypeDef TIM1_TimeBaseStructure;//声明初始化结构体 TIM1_TimeBaseStructure.TIM_Prescaler = 0x0; //设置周期

TIM1_TimeBaseStructure.TIM_Period = 0xFFFF; // 设置分频,范围0-0XFFFF TIM1_TimeBaseStructure.TIM_ClockDivision = 0x0; //设置时钟分割

TIM1_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//计数模式,向上计数 TIM1_TimeBaseStructure.TIM_RepetitionCounter = 0x0;//计数器重载值 TIM_TimeBaseInit(TIM1,&TIM1_TimeBaseStructure);//初始化结构体 }

TIM2

TIM2普通模式

TIM2 基本配置初始化

void TIM2_BASE_Configuration(void) {

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//声明初始化结构体

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//使能定时器2,注意时钟源是APB1 TIM_TimeBaseStructure.TIM_Period = 7200; //设置周期时间,范围0-0XFFFF TIM_TimeBaseStructure.TIM_Prescaler = 9999;// 设置分频,范围0-0XFFFF TIM_TimeBaseStructure.TIM_ClockDivision = 0;//时钟分割

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);//初始化定时器基本配置 TIM_ClearITPendingBit(TIM2, TIM_IT_Update);//清除刷新中断标志位 TIM_ITConfig(TIM2, TIM_IT_Update , ENABLE);//开启计数中断 TIM_Cmd(TIM2, ENABLE);//使能TIM2 }

TIM2 中断初始化

void NVIC_TIM2_Configuration(void) {

NVIC_InitTypeDef NVIC_InitStructure;//声明结构体

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//设置优先级组0,1,2,3,4 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;//中断向量:定时器2全局中断 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//设置先占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//设置从优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//中断使能 NVIC_Init(&NVIC_InitStructure);//初始化中断 }

联系合同范文客服:xxxxx#qq.com(#替换为@)