新手入门
- 积分
- 14
- 金钱
- 14
- 注册时间
- 2020-7-28
- 在线时间
- 2 小时
|
发表于 2021-5-28 21:01:14
|
显示全部楼层
void tim4_init(u32 arr,u32 pre)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //使能TIM4时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
TIM_TimeBaseStructure.TIM_Period= arr; //设置了在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler= pre;//设置了用来作为 TIMx 时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision= TIM_CKD_DIV1; //设置了时钟分割 如果不是0那么时钟就是72M,否则就是36M
TIM_TimeBaseStructure.TIM_CounterMode= TIM_CounterMode_Up; //选择了计数器模式 向上计数
TIM_TimeBaseInit(TIM4, & TIM_TimeBaseStructure); //初始化TIM3
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE ); //使能或者失能指定的TIM中断
#if 1//ndef ENABLE_PSAM_FUNCTION
/* 设置NVIC参数 */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn; //打开TIM4_IRQn的全局中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; //抢占优先级为0
NVIC_InitStructure.NVIC_IRQChannelSubPriority=2; //响应优先级为1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能
NVIC_Init(&NVIC_InitStructure); // 而且上面这个if 1的宏不能开,一开的话,就会在NVIC_Init这个地方卡住
#endif
//TIM_Cmd(TIM4, DISABLE); // TIM2外设
TIM_Cmd(TIM4,ENABLE);
|
|