历史上的今天
今天是:2025年04月23日(星期三)
2019年04月23日 | STM32学习笔记-定时器中断
2019-04-23 来源:eefocus
如果我们想要去每隔一段时间去做一件事,或者说特定的时间去做某件事,但是我们所有的精力不能放在计时上,我们有主要的事情要做,但是我们还必须每隔一段时间就要做另外一件事.我们就必须找一个可以计时的东西,它的工作就是每隔特定的时间告诉我们一声.这样,我们既可以做那个主要的事,每隔一段时间需要做的事也可以做,这个计时的东西就是定时器.
与配置io口类似,定时器的初始化也是给一个结构体变量赋值,把参数传送给初始化函数.
下面是定时器3初始化的一个例子
void tim3(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
TIM_TimeBaseStructure.TIM_Period =1000-1;
TIM_TimeBaseStructure.TIM_Prescaler = 35999;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM3,ENABLE);
}
TIM_TimeBaseInitTypeDef结构体变量类型名
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);打开apb1总线上的定时器3的时钟
TIM_TimeBaseStructure.TIM_Period =1000-1;分频系数(将主频分割)个人理解
TIM_TimeBaseStructure.TIM_Prescaler = 35999;计数溢出值(计数到这个值产生消息)个人理解
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;时钟分频因子 不懂 默认0即可这个宏的值就是0
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;计数模式 向上计数 其他计数模式见手册
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);传入结构体地址,完成基本配置
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);打开定时器3中断
TIM_Cmd(TIM3,ENABLE);使能定时器3
void tim3youxianji(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel =TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
中断优先级配置,与外部中断相同,将中断通道改为定时器3即可NVIC_InitStructure.NVIC_IRQChannel =TIM3_IRQn;
void TIM3_IRQHandler(void)
{
.......;
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}
中断服务函数,每产生一次计时消息进入一次中断服务函数.
计时消息计算公式 计时频率=处理器主频/分频系数/计数溢出值 计时频率即进入中断的频率
史海拾趣
|
ENH038QD1-450/650 尺寸大小: 3.8" 分辨率: QVGA 320 x 240 接口: 6-bits TTL interface 亮度 : 450/650nit(cd/m2) 对比度:高对比度、大开口率 显示模式:Normally White 响应时间:Rise 30ms/ Fall 50ms 功耗:3.4W 工作温度: -30℃--- ...… 查看全部问答> |
|
EMS 2009 Call for Papers: Sept. 20-22, 2009, Beijing, China ====================================================================== The 3rd Int’l Conference on Engineering Management and Service Sciences (EMS 2009) CALL FOR PAP ...… 查看全部问答> |
|
TTL触发器芯片的主要参数 集成触发器的参数也可以分为直流参数和开关参数两大类。 下面以TTL集成JK触发器为例来简单介绍。 开关参数 1.最高时钟频率fmax fmax就是触 ...… 查看全部问答> |
|
在EVC下用win32方式编程. 功能是从strong1盘的所有数据全部copy到strong2\\\\file1下面. 怎么样用C写代码让copy动作最高效地执行?… 查看全部问答> |
|
我已经安装了EVT3.0,现想将其中的EVC升级到4.0,我从网上下载了EVC4.0安装程序安装后运行不了提示no CE platform SDK 于是我从网上去下载wince 5.0 SDK 可是无法安装,不是程序错误,像是缺少了什么东西 请问怎么才能安装EVC4.0 谢谢!… 查看全部问答> |
|
1、为什么我用NdisAllocateMemoryWithTag申请内存后,在NdisFreeMemory释放!有时候会蓝屏 我用 NdisAllocateMemoryWithTag(&pPacketContent,TotalPacketLength,TAG); 申请后 在释放的时候用 if(pPacketContent) NdisFreeMemory(pPacketConte ...… 查看全部问答> |




