贡品是什么意思| 什么胃病需要做手术| 什么克金| 92年的属什么| 八月出生的是什么星座| 小腹胀是什么原因| 晶体是什么| 精神什么满| 息肉病变什么意思| 我到底是什么| 什么蛋不能吃脑筋急转弯| 腋臭和狐臭有什么区别| 梦到别人给钱是什么意思| 金鱼吃什么食物| 女人烂桃花多说明什么| 天打五雷轰是什么意思| 薄荷叶泡水喝有什么功效和作用| 六合是什么意思| 蒲公英可以和什么一起泡水喝| 猫什么时候传入中国| dos是什么| 午马是什么意思| 花儿像什么比喻句| 胎盘内血池是什么| 口苦口干吃什么药最好| 小便多是什么原因男性| 鲨鱼吃什么| 1928年属什么生肖| 走马观花的走什么意思| 苍茫的天涯是我的爱是什么歌| 乙肝属于什么科| 破窗效应是什么意思| 精神衰弱吃什么能改善| 电动轮椅什么牌子质量好| 木薯淀粉可以用什么代替| 祎是什么意思| 六月份适合种什么菜| 股骨头坏死挂什么科| z代表什么| 什么头什么向| 卜卜脆是什么意思| 榴莲的寓意是什么意思| 旗舰店是什么意思| 12月26日什么星座| 11月28是什么星座| 什么仗人势| 什么也别说| 腥臭味是什么妇科病| 酒喝多了喝什么解酒| 什么是人棉| 骨盐量偏高代表什么| 坐围和臀围有什么区别| 甘油脂肪酸酯是什么| 头皮起疙瘩是什么原因| gin什么意思| 记性越来越差是什么原因| 一什么清风| 感冒发烧不能吃什么食物| 香菇不能和什么一起吃| 大枣和红枣有什么区别| 上唇肿胀是什么原因| 什么名字好听男生| 充电宝100wh是什么意思| 斯德哥尔摩综合征是什么| 泡脚用什么泡最好| 眉毛长白毛是什么征兆| 气虚便秘吃什么中成药| 家里为什么会有壁虎| 什么矿泉水比较好| 什么是物理学| 梅毒螺旋体抗体阴性是什么意思| 三朵玫瑰花代表什么意思| 胡萝卜什么时候种植| 柳絮吃了有什么好处| 西施是什么意思| 什么阳地名| 阴阳两虚吃什么食物| 滴虫性阴炎有什么症状表现| 指甲凹陷是什么原因引起的| 长春都有什么大学| 征候是什么意思| 风花雪月什么意思| 湿气重喝什么茶| vod是什么意思| 慧命是什么意思| 小肚子大是什么原因| 十三太保什么意思| 葛根有什么功效| 火箭是干什么用的| 精索静脉曲张吃什么药| 点了斑不能吃什么| 海龟是什么动物| 烧心反酸水吃什么药| con是什么| 什么是对数| 高血糖是什么原因引起的| ch发什么音| 办理暂住证需要什么材料| 阴道瘙痒用什么药最好| 男性尿路感染吃什么药| 六个坚持是什么| 肛门坠胀是什么原因| 吃什么容易导致流产| 左上眼皮跳是什么预兆| 椎管狭窄吃什么药| 刷牙出血是什么原因| 皮肤长癣是什么原因| 什么是免疫组化检查| 官运是什么意思| 武松打虎打的是什么虎| 颠是什么意思| ipa啤酒什么意思| 为什么辰不能见亥| 藕粉是什么颜色| 今年农历是什么年| 眼睑炎用什么药| 大便稀溏是什么意思| 打磨工为什么没人干| 男人左眼跳是什么预兆| 胖大海配什么喝治咽炎| 宝付支付是什么| 麦冬不能和什么一起吃| 含羞草为什么会害羞| 1月3号什么星座| 什么节气开始凉快| 吃什么去肝火最快| fog是什么牌子| 什么是结节| 谷丙转氨酶高是什么原因| 小浣熊吃什么| 晚上尿次数多什么原因| 眼睛不舒服是什么原因| 纯阴八字为什么要保密| 直肠指检能检查出什么| 70是什么意思| 呼吸不顺畅是什么原因| 鸡和什么相冲| 胆囊炎是什么| 手脱皮用什么药膏最好| 做什么生意| 为什么阴道会放气| 上颌窦炎症是什么病| 梦见大便是什么意思| 心电图能查出什么| 至多是什么意思| 四个月宝宝可以吃什么辅食| 右位主动脉弓是什么意思| 乳腺囊实性结节是什么意思| 癃闭是什么意思| 喝什么养胃| 前列腺增大有什么危害| 夸加包念什么| 李隆基是李世民的什么人| 风湿热是什么病| 喝了藿香正气水不能吃什么| 什么是调和油| 螃蟹吃什么食物| 什么叫靶向治疗| 核素是什么| 曹植字什么| 为什么会感染幽门螺杆菌| 冰恋是什么意思| 太阳黑子是什么东西| 实相是什么意思| 北极熊是什么颜色的| fat是什么意思| 耗儿鱼是什么鱼| 95年是什么年| 桑螵蛸是什么| geneva是什么牌子手表| 两个务必是什么| 新疆在古代叫什么| h2ra 是什么药物| hpv16是什么意思| 肚脐眼周围痛什么原因| 县教育局局长是什么级别| 站着说话不腰疼是什么意思| 日单是什么意思| 吃什么都咸是什么原因| attach什么意思| 轻微脑震荡有什么症状| 来大姨妈喝什么汤比较好| 性激素是什么意思| 报销凭证是什么| 手指甲出现双层是什么原因| 蛔虫是什么动物| 圆珠笔是什么笔| 阴道息肉长什么样| 蚊子喜欢咬什么人| 失心是什么字| 血管堵塞用什么药| 球蛋白的功效与作用是什么| 严重贫血吃什么补的快| 憋屈是什么意思| 逼长什么样| 卷心菜是什么菜| 睾丸发炎吃什么药| 领结婚证需要带什么材料| 50年属什么生肖| 胃体隆起是什么意思| 死刑是什么意思| 吃什么能降低尿蛋白| 去减一笔变成什么字| 尿酸高是什么原因造成的| 女人大腿内侧黑是什么原因引起的| 早上六七点是什么时辰| 梦房子倒塌什么预兆| 体液是指什么| 什么颜色的衣服最防晒| 绿色配什么颜色| 压力等于什么| 蝼蛄是什么| 派出所所长是什么级别| 春饼卷什么菜好吃| 请产假需要什么材料| 三个金读什么| 相濡以沫是什么意思| 体贴是什么意思| 辅酶q10什么价格| 细菌性阴道炎有什么症状| 阳暑吃什么药| pigeon是什么意思| 芥末是什么植物| 上校相当于政府什么官| 可遇不可求什么意思| 蛋糕裙适合什么人穿| 皮肤瘙痒是什么原因| 附属是什么意思| 天秤座跟什么星座最配| 口干舌燥是什么意思| 鸭锁骨是什么部位| 中华田园犬为什么禁养| 血压偏低有什么危害| 血管脆是什么原因| 怀孕肚子胀是什么原因| 酱油是什么时候发明的| 冷面是什么面做的| 同字五行属什么| 结核抗体阴性代表什么| er是什么元素| 榴莲对孕妇有什么好处| 狮子的天敌是什么动物| 鸡头米是什么东西| 惘然什么意思| 想做肠镜挂什么科| 水过鸭背是什么意思| 圣诞节什么时候| 处变不惊是什么意思| 鲸鱼属于什么类动物| 半边脸肿是什么原因| 菌群异常是什么意思| 2023年是属什么生肖| 什么的落日| 日加立念什么| fdg是什么意思| 解表药是什么意思| 记号笔用什么能擦掉| 五年生存率是什么意思| 甯字五行属什么| 山本耀司的品牌叫什么| 丁克是什么药| 一厢情愿是什么意思| 睡眠障碍应该挂什么科室| 一什么金光| 百度

深圳“孔雀人才”奖励补贴标准翻番 最高达300万元!

本文详细介绍如何使用STM32的定时器实现LED灯的周期性闪烁,包括定时器的基本概念、不同类型的定时器功能对比及配置过程。通过具体实例展示了如何设置定时器参数以达到所需的定时效果。
百度 另一本备受赞誉的书是来自英国学者基思·罗威的《野蛮大陆》。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能实现:

  • 采用定时器实现LED灯的闪烁,周期为1S

准备工作:

  • 1、STM32开发板(我的是STM32F103VET6)
  • 2、STM32CubeMx软件、 IDE:?Keil软件
  • 3、按键管脚 : PA0? ?PC13? ?
  • 4、LED管脚?: PB0? ?PB1? ?PB5?

定时器简介:

SMT32F1系列共有8个定时器:

  • 基本定时器(TIM6、TIM7)
  • 通用定时器(TIM2、TIM3、TIM4、TIM5)
  • 高级定时器(TIM1、TIM8)

SMT32F4系列共有15个定时器:

  • 基本定时器(TIM6、TIM7)
  • 通用定时器(TIM2、TIM3、TIM4、TIM5、TIM9~TIM14)
  • 高级定时器(TIM1、TIM8)

基本定时器功能(TIM6、TIM7):

  • ?16位向上、向下、向上/下自动装载计数器
  • ?16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值
  • 触发DAC的同步电路?注:此项是TIM6/7独有功能.
  • 位于APB1总线上


通用定时器(TIM2~TIM5)的主要功能:

  • ?16位向上、向下、向上/下自动装载计数器
  • 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值
  • 4 个独立通道(TIMx_CH1~4)可以用作:
  • ? ? ? ? ? ? ? ? ? 测量输入信号的脉冲长度( 输入捕获)?
  • ? ? ? ? ? ? ? ? ? 输出比较
  • ? ? ? ? ? ? ? ? ? 单脉冲模式输出?
  • ? ? ? ? ? ? ? ? ? PWM输出(边缘或中间对齐模式)?
  • 支持针对定位的增量(正交)编码器和霍尔传感器电路?
  • 如下事件发生时产生中断/DMA:
  • ? ? ? ? ? ? ? ?更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)?
  • ? ? ? ? ? ? ? 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)?
  • ? ? ? ? ? ? ? 输入捕获 ?
  • ? ? ? ? ? ? ? 输出比较??
  • 位于APB1总线上


高级定时器(TIM1,TIM8)的主要功能:

  • 高级定时器具有基本,通用定时器的所有的功能,
  • 还具有控制交直流电动机所有的功能,
  • 输出6路互补带死区的信号,刹车功能等等
  • 位于APB2总线上

总括:基本定时器就是单纯的定时计数器,通用定时器多了四个通道,相对应的增加了功能,高级定时器具有基本,通用定时器的所有的功能,并且添加了其他功能

?

定时器计数模式

通用定时器可以向上计数、向下计数、向上向下双向计数模式。

  • 向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。
  • 向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。
  • 中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。

简单地理解三种计数模式,可以通过下面的图形:

?

计数时钟的选择

计数器时钟可由下列时钟源提供:

  • 内部时钟(TIMx_CLK)?
  • 外部时钟模式1:外部捕捉比较引脚(TIx)
  • 外部时钟模式2:外部引脚输入(TIMx_ETR)?仅适用TIM2,3,4
  • 内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。
    ?

新建工程

1.1?New Project

  • 1 搜索芯片型号
  • 2选择芯片
  • 3创建工程

?

1.2设置时钟源RCC??

  • 系统时钟源选择外部晶振时钟源

?

设置时钟

  • 设置倍频为4,则定时器的时钟源频率为32M,这个数值需要用到计算定时器的定时周期

?

1.3 设置GPIO

  1. 设置PB0和PB1为输出模式

?

设置定时器

使能T2中断

?

1选择TIM2

2定时器时钟选择内部时钟

? ? Clock Source(时钟来源)? ? ? ?

计数器设置:

  • Prtscaler (定时器预分频系数)? : 31999
  • Counter Mode(计数模式) :? ?Up(向上计数模式)? ? ?? ? ? ? ? ? ? ?
  • Counter Period(自动重装载值) :? ??499???
  • CKD(时钟分频因子)?:?No Division 不分频 (可以选择二分频和四分频? ?)
  • auto-reload-preload(自动重装载)? :? ? Enable 使能

定时器的定时周期

? ? ?T = (psc+1)(arr+1)/Tclk

  • psc 为定时器预分频系数
  • arr为自动重装载值
  • Tclk为系统时钟频率

通过计算

? ?T = (psc+1)(arr+1)/Tclk=(31999+1)(499+1)/32us=500ms

?

项目文件设置

  • 1 设置项目名称
  • 2 选择所用IDE

生成代码

  1. 为每个功能生成独立的.c和.h文件
  2. 生成代码

?

代码部分解析

找到main函数,里面关于TIM2初始化的函数?MX_TIM2_Init(),进入初始化函数,查看源码

?

?


TIM_HandleTypeDef htim2;

/* TIM2 init function */
void MX_TIM2_Init(void)
{
  TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  TIM_MasterConfigTypeDef sMasterConfig = {0};

  htim2.Instance = TIM2;
  htim2.Init.Prescaler = 31999;
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim2.Init.Period = 499;
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
  {
    Error_Handler();
  }
  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
  if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
  {
    Error_Handler();
  }
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }

}

从上面代码可以看到,先定义了一个htim2的结构体

然后是对结构体的初始化,就是我们图形化的配置

再找到stm32f1xx_it.c文件

void TIM2_IRQHandler(void)
{
  /* USER CODE BEGIN TIM2_IRQn 0 */

  /* USER CODE END TIM2_IRQn 0 */
  HAL_TIM_IRQHandler(&htim2);
  /* USER CODE BEGIN TIM2_IRQn 1 */

  /* USER CODE END TIM2_IRQn 1 */
}

上面的代码是如果TIM2中断,则调用? HAL_TIM_IRQHandler(&htim2);

进入HAL_TIM_IRQHandler(&htim2)函数,这里面的代码很长,就是不同的中断类型,进入不同的中断回调函数,这里找到?HAL_TIM_PeriodElapsedCallback(htim);

?

进入这个回调函数,我们看到是个虚函数,需要我们重写,在这个函数里面,就是我们需要实现的功能,但在这之前,需要在main函数里使能中断?HAL_TIM_Base_Start_IT(&htim2)

main.c中的添加代码如下:

?

总结,对于定时器的定时中断,相对比较简单,绝大多数功能图形化配置已经为我们配置好了,我们做的只需两步

  1. 在main函数中,开启TIM2中断,HAL_TIM_Base_Start_IT(&htim2);
  2. 重写?HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) 函数,然后在里面实现我们需要的功能

?

?

?

### STM32CubeMX定时器参数配置方法 #### 配置基础设置 在STM32CubeMX中启动项目并选择目标微控制器型号后,在“Pinout & Configuration”标签页下找到TIMx外设(其中x代表具体的定时器编号)。点击进入其配置界面。 对于希望实现的功能——即通过定时器触发ADC转换并通过DMA传输数据,需注意几个关键点: - **模式选择**:应将定时器工作于PWM输入、编码器接口或输出比较等模式之外;通常情况下,“计数器模式(EdgeAligned)”就足够满足需求[^1]。 - **时基单元(Base Timebase Unit)**:定义了定时周期的基础单位。这里要依据实际应用频率来调整预分频系数(PSC)以及自动重装载寄存器(ARR),从而达到期望的溢出间隔时间。例如,如果想要每毫秒发生一次事件,则可以根据系统核心时钟计算合适的PSC和ARR值。 ```c // 假定APB1/APB2时钟为84MHz, 要求定时时间为1ms htim->Instance = TIM2; htim->Init.Prescaler = (uint32_t)(SystemCoreClock / 1000000) - 1; // PSC=8399 -> 实际频率约为1KHz htim->Init.CounterMode = TIM_COUNTERMODE_UP; htim->Init.Period = 999U; // ARR=999 -> 计数值满溢出正好是1ms if (HAL_TIM_Base_Init(&htim) != HAL_OK){ Error_Handler(); } ``` #### 设置更新中断/回调函数 为了确保每次定时结束都能正确处理后续操作,比如发起新的ADC采样请求,应该使能相应的中断源或者注册回调函数。这一步骤可以在“NVIC Settings”页面完成,勾选对应定时器的全局中断选项即可。 #### 启动定时器与关联功能模块 最后,在主程序里调用`HAL_TIM_Base_Start_IT()`开启带中断服务例程的支持版本之后,还需要进一步初始化其他参与协作的部分,像本案例中的ADC通道及其对应的DMA流资源。务必保证这些组件之间相互协调一致,这样才能构建起稳定可靠的数据获取链路。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
梦见水是什么预兆 吃什么药怀孕最快 狗可以吃什么水果 霜降出什么生肖 clean什么意思
结膜炎是什么症状 嘴边起水泡是什么原因 心悸是什么原因造成的 内膜厚吃什么掉内膜 为什么要穿内裤
双花是什么中药 所费不赀是什么意思 缺二氧化碳是什么症状 和田玉对身体有什么好处 大豆是什么豆
鹅蛋治什么妇科病 人生轨迹是什么意思 血糖高的人早餐吃什么好 boxing是什么意思 抬头纹开了是什么意思
核磁共振什么时候出结果hcv8jop0ns9r.cn 手上三条线分别代表什么xinjiangjialails.com 领盒饭是什么意思dayuxmw.com 96年属什么的生肖hcv9jop6ns1r.cn 吃什么助睡眠hcv8jop2ns3r.cn
速战速决的意思是什么hcv9jop6ns4r.cn 全科门诊主要看什么hcv9jop6ns2r.cn 琪字五行属什么hcv8jop2ns5r.cn 什么是碱性水hcv7jop6ns9r.cn 里脊肉是什么肉gangsutong.com
6月16日什么星座hcv9jop1ns5r.cn 月经老是提前是什么原因wzqsfys.com 脱节是什么意思tiangongnft.com 胃酸恶心想吐什么原因wuhaiwuya.com 4.2什么星座hcv8jop7ns8r.cn
恍恍惚惚什么意思hcv8jop2ns3r.cn 本字五行属什么hcv7jop7ns2r.cn 2005年什么年hcv9jop6ns9r.cn h是什么beikeqingting.com 蚂蚁搬家是什么意思hcv9jop6ns0r.cn
百度