STM32学习笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、TIM中断一些基本知识

定时器中:实际分频系数=预分频器的值+1,最大值65535
计数器计数频率 :CK_CNT = CK_PSC / (PSC+1)
计数器溢出频率 : CK_CNT_OV = CK_CNT / (ARR+1) = CK_PSC / (PSC + 1) / ( ARR +1)
所有定时器的内部基准时钟都是72MHz。

二、代码编写

定时器中断基本结构:思路就是将各个模块打通,就可以让定时器进行工作
1.RCC开启时钟。
2.选择时基单元的时间源,对于定时中断选择内部时间源。
3.配置时基单元
4.配置输出中断控制
5.配置NVIC,在NVIC中打开定时器中断的通道,并分配一个优先级
6.运行控制
在这里插入图片描述

常用定时器库函数介绍

1.void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);时基单元初始化
2.void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
3.void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState):用来使能计数器
4.void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState):使能中断输出控制
5.void TIM_InternalClockConfig(TIM_TypeDef* TIMx):选择内部时钟
6.void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource):选择ITRx其他定时器的时钟。
7.void TIM_TIxExternalClockConfig():选择TIX捕获通道的时钟
8.void TIM_ETRClockMode1Config():选择ETR外部时钟控制模式
9.void TIM_ETRClockMode2Config():选择ETR通过外部时钟模式2输入的时钟
10.void TIM_ETRConfig():单独用来配置ETR引脚的预分频器、极性、滤波器等参数
11.void TIM_PrescalerConfig():单独用来写预分频值
12.void TIM_CounterModeConfig():改变计数器的计数模式
13.void TIM_ARRPreloadConfig():自动重装器预装功能配置
14.void TIM_SetAutoreload():给自动重装器写入一个值
15.uint16_t TIM_GetCounter(TIM_TypeDef* TIMx):获得当前计数器的值
16.uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx):获得当前预分频器的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值