1.26日学习内容-定时器

1、在昨晚尝试自己编写外部中断实验,按照外部中断步骤写时,在配置NVIC(中断分组时),不知道通道怎么找,于是再次看了一遍视频,视频上说是从usart.c的stm32f4xx.h中找,我打开文件的时候,看到了typedef enum IRQn,不懂什么是enum,于是百度一波~

  eunm:枚举类型。IRQn:枚举类型名。枚举元素不是变量,而是常数,因此枚举元素又称为枚举常量。

2、定时器

计数器模式:向上计数模式、向下计数模式。中央对齐模式。

除非APB1的分频系数是1,否则通用定时器的时钟等于APB1时钟的2倍。

计数器的时钟频率CK_CNT=fCK_PSC/(psc+1);

fCK_PSC:预分频器时钟的频率;psc:预分频器的值

常用库函数:stm32f4xx_time.c/.h

定时器中断实现步骤

1)TIM3 时钟使能:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

2)初始化定时器参数,设置自动重装值,分频系数,计数方式等:

voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);

3)设置 TIM3_DIER 允许更新中断

void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);

4)TIM3 中断优先级设置:

NVIC_Init();

5)允许 TIM3 工作,也就是使能 TIM3

void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);

即TIM_Cmd(TIM3, ENABLE);

6)编写中断服务函数

TIMx_IRQ Handler();

ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t)
:读取中断状态寄存器的值判断中断类型

void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT):

清除中断标志位.

Tout(溢出时间)=(arr+1)(psc+1)/Tclk




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值