首页 资讯 应用 高压 设计 行业 低压 电路图 关于

单片机

旗下栏目: PLC 嵌入式 单片机 DCS

STM32要使用一个定时器需要做哪些工作

单片机 | 发布时间:2018-10-19 | 人气: | #评论# | 本文关键字:STM32,定时器
摘要:1.配置该时钟的中断优先级,NVIC NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//配置NVIC中断优先级编组 NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn; //TIM6中断 NVIC_InitStructure.NVIC_IRQC

1.配置该时钟的中断优先级,NVIC

    NVIC_InitTypeDef NVIC_InitStructure;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);     //配置NVIC中断优先级编组

    NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;  //TIM6中断

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;  //抢占优先级1级

    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  //从优先级3级

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能

    NVIC_Init(&NVIC_InitStructure);  //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器

2.初始化该时钟的配置,包括:

开启该定时器的时钟源:RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);

清空配置:TIM_DeInit(TIM6);

配置时钟的自动重装计数器:TIM_TimeBaseStructure.TIM_Period=200;

配置时钟源预分频数:TIM_TimeBaseStructure.TIM_Prescaler= (1600 – 1);

配置时钟分频数:TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;

配置计数模式:TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;

让配置生效:TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);

清空溢出中断标志:TIM_ClearFlag(TIM6, TIM_FLAG_Update);

设置溢出中断使能:TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE);

启动定时器:TIM_Cmd(TIM6, ENABLE);

3.编写该时钟的中断服务函数

void TIM6_IRQHandler(void)

{

    if(TIM_GetITStatus(TIM6, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源

    {

        TIM_ClearITPendingBit(TIM6, TIM_IT_Update  );  //清除TIMx的中断待处理位:TIM 中断源

        sysClockCount++;                                //用于滚动显示字符

    }

}

责任编辑:STM32定时器
首页 | 电气资讯 | 应用技术 | 高压电器 | 电气设计 | 行业应用 | 低压电器 | 电路图 | 关于我们 | 版权声明

Copyright 2017-2018 电气自动化网 版权所有 辽ICP备17010593号-1

电脑版 | 移动版 原创声明:本站大部分内容为原创,转载请注明电气自动化网转载;部分内容来源网络,如侵犯您的权益请发送邮件到[email protected]联系我们删除。