前言:本文详细条例STM32 103定时器的设定


1 定时器简介

中等容量的STM32F103xx增强型系列产品包含1个高级控制定时器、3个普通定时器,以及2个看门 狗定时器和1个系统嘀嗒定时器。

下表比较了高级控制定时器、普通定时器和基本定时器的功能:

表4 定时器功能比较

高级控制定时器(TIM1)

高级控制定时器(TIM1)可以被看成是分配到6个通道的三相PWM发生器,它具有带死区插入的互补 PWM输出,还可以被当成完整的通用定时器。

四个独立的通道可以用于:

● 输入捕获

● 输出比较

● 产生PWM(边缘或中心对齐模式)

● 单脉冲输出

配置为16位标准定时器时,它与TIMx定时器具有相同的功能。配置为16位PWM发生器时,它具有全 调制能力(0~100%)。

在调试模式下,计数器可以被冻结,同时PWM输出被禁止,从而切断由这些输出所控制的开关。 很多功能都与标准的TIM定时器相同,内部结构也相同,因此高级控制定时器可以通过定时器链接功 能与TIM定时器协同操作,提供同步或事件链接功能。


CubeMX 定时器选项:

1 在Timers里面选择PWM输出:

2 设定PWM的输出频率和占空比

没设定之前是这样

Prescaler ,是预分频,

在设定预分频的前一步,你先要确认你的CLOCK Configuration

上一节我们已经介绍了如何设定到72M的最大频率,这里,我们看到给到Timer的最大分频就是72M


PWM 输出设定


然后 在实际的管脚去测量,发现没有输出!!!

因为没有做下面的详细设定


设定好之后,按下【GENERATE CODE】代码,自动生成初始化代码:

static void MX_TIM3_Init(void)
{/* USER CODE BEGIN TIM3_Init 0 *//* USER CODE END TIM3_Init 0 */TIM_MasterConfigTypeDef sMasterConfig = {0};TIM_OC_InitTypeDef sConfigOC = {0};/* USER CODE BEGIN TIM3_Init 1 *//* USER CODE END TIM3_Init 1 */htim3.Instance = TIM3;htim3.Init.Prescaler = 0;htim3.Init.CounterMode = TIM_COUNTERMODE_UP;htim3.Init.Period = 18000-1;htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;if (HAL_TIM_PWM_Init(&htim3) != HAL_OK){Error_Handler();}sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK){Error_Handler();}sConfigOC.OCMode = TIM_OCMODE_PWM1;sConfigOC.Pulse = 9000;sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK){Error_Handler();}/* USER CODE BEGIN TIM3_Init 2 *//* USER CODE END TIM3_Init 2 */HAL_TIM_MspPostInit(&htim3);}
/*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_TIM3_Init();MX_TIM1_Init();MX_TIM4_Init();/* USER CODE BEGIN 2 */HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);/* 4K */HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){

STM32 - CubeMX 的使用实例详细(04.1)- STM32F103的 - 定时器设定详细解释 - PWM波的产生 - 频率占空比的设定 - 软件代码分析相关推荐

  1. STM32 - CubeMX 的使用实例详细(01)- STM32F103的配置 - GPIO设定

    前言,项目需要STMF103的片子做PWM的控制,感觉ST的新版的IDE的配置功能很强大,想用用看. 项目采用的是STM32F103C8T6 1 端口的配置 1.1 MCU选型 MCU框图可以查阅: ...

  2. STM32 - CubeMX 的使用实例详细(01.1)- ST-LINK V2 的配置

    MX很方便,但是,由于自动生成的代码,这样的话,就容易有一些配置冲突,因为选项太多了. ST-LINK V2 的样子: 这个版本应该是国内的简化版本: 管脚配置应该如下: 其实只要连接3根线就可以了 ...

  3. STM32 CubeMX HAL库 之红外接收(NEC协议)定时器捕获

    第一次自己写完整的硬件驱动,发上来给大家看看,顺便吸收些改进方案,希望各位能够不吝赐教,指出代码的不足之处.同时我也很高兴这代码能给你带来帮助. 工程使用CubeMX创建,使用VS Code编程,单片 ...

  4. STM32单片机:定时器TIM输出PWM波

    学习32单片机过程中使用的工具:MDK Keil5 + 正点原子精英版(STM32F103ZET6)+ STM32CubeMX + HAL开发 一.PWM的产生原理 关于PWM的产生原理网上有很多教程 ...

  5. STM32一个定时器同时捕获4路PWM波

    问题的提出: 最近需要用航模遥控器控制遥控车,32单片机做主控,需要用到4个通道即需要捕获4路PWM波.如果用四个定时器来捕获四路PWM波,就太浪费资源了.由于STM32单片机的定时器资源有限,故设想 ...

  6. 使用STM32测量脉宽可变的PWM波的脉冲宽度

    最近受疫情影响导致我莫得办法出去玩,打游戏一不小心又给打通关了就只能找点东西玩玩了,所以就有了下面这篇文章......搞这个东西的时候遇见一些好玩的问题,我写在第6部分,希望能帮到看到这篇小文章的同志 ...

  7. stm32之ADC应用实例(单通道、多通道、基于DMA)

    硬件:STM32F103VCT6 开发工具:Keil uVision4 下载调试工具:ARM仿真器 网上资料很多,这里做一个详细的整合.(也不是很详细,但很通俗). 所用的芯片内嵌3个12位的模拟/数 ...

  8. c语言定时器定时1ms程序,STM32 Cubemx 配置定时器定时1mS

    最近才发现原来我把定时器里的配置参数代表的意义给搞混了,这里记录一下,防止以后自己忘记. 以建立一个定时1mS定时器为例: 1.先打开定时器 2.配置好时钟 3.配置定时器设置 重点来了,以前在这里我 ...

  9. 基于stm32、0.96寸OLED实现的俄罗斯方块小游戏(详细源码注释)

    概述:本实验基于stm32最小系统.0.96寸OLED(68*128)和摇杆实现一个经典的俄罗斯方块小游戏.项目源码地址:点击下载. 硬件要求: 普通摇杆,两个电位器和一个开关组成,左右摇动控制一个电 ...

最新文章

  1. 华为鸿蒙新概念机,华为P50概念机确认,麒麟芯片+鸿蒙系统,这才是真旗舰!...
  2. .net版 类似火车头的网页采集
  3. cad 关键字被保留了?选择集关键字保留了? N S W E关键字无法用?
  4. TF之AutoML之AdaNet框架:AdaNet框架的简介、特点、使用方法详细攻略
  5. RISC-V应用创新大赛开放报名啦!
  6. 【转载】关于测试人员的职业发展
  7. Sencha Architect 2 的使用
  8. Adobe Flex Application LifeCycle
  9. python 干什么工作具有明显优势-Python在数据分析方面有什么独特优势
  10. BZOJ2038:[2009国家集训队]小Z的袜子——题解
  11. Android源码目录结构
  12. 奠定技术基石 英特尔创新引擎闪耀CES2019
  13. 5步教你成功求职进入BAT
  14. 利用openpose跑关键点
  15. 移动高德地图marker点
  16. 6种css3鼠标滑过动画效果
  17. 安卓手机软件开发_这款安卓神器,让你下片更轻松!千万别滥用
  18. 设备维护管理的内容是什么?这四点你必须知道
  19. 大数据需要学习哪些技术?
  20. iOS闪退的原因和方案总结

热门文章

  1. 母函数 入门 + 模板
  2. 【Day04】介绍防抖节流原理、区别以及应用,并用 JavaScript 进行实现
  3. 解决 Windows 端口被占用问题
  4. 【Java】兔子问题
  5. 如何持之以恒做好一件事?
  6. 怎么让前端项目运行起来_如何立即使您的前端项目看起来更好
  7. docker集群管理工具_太多选择:如何选择正确的工具来管理Docker集群
  8. Redux简介以及Redux应用程序中的状态更新方式
  9. 百度HTTPS认证显示“您的站点有链接未通过https检验”的解决办法
  10. Python matplotlib绘制雷达图