stm32 PWM波
本篇主要记录使用STM32的TIM外设输出PWM波。
PWM参数配置(以TIM3为例)
- 开启定时器3和相关IO口的时钟1;
- 初始化IO口;
- 开启AFIO时钟;
- 初始化定时器:ARR,PSC等:TIM_TimeBaseInit();
- 初始化输出比较参数: TIM_OC3Init();
- 打开预装载寄存器:TIM_OC3PreloadConfig(TIM3,TIM_OCpreload_Enable);
- 打开定时器;
- 不断改变比较值CCRx,达到不同的占空比效果.
代码
Pwm.c
#include "stm32f10x.h"
#include "pwm.h"void TIM_Init(uint16_t arr, uint16_t psc)
{TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;GPIO_InitTypeDef GPIO_InitStruct;TIM_OCInitTypeDef TIM_OCInitStruct;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);TIM_TimeBaseInitStruct.TIM_Period=arr;TIM_TimeBaseInitStruct.TIM_Prescaler=psc;TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStruct);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP; //SET GPIOGPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStruct);TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStruct.TIM_Pulse=0;TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;TIM_OC3Init(TIM3,&TIM_OCInitStruct);TIM_OC3PreloadConfig(TIM3,TIM_OCPreload_Enable);TIM_Cmd(TIM3,ENABLE);
Pwm.h
#ifndef _PWM_H
#define _PWM_H
#include "stdint.h"void TIM_Init(uint16_t arr,uint16_t psc);#endif
TIM部分引脚: ↩︎
stm32 PWM波相关推荐
- STM32 PWM波驱动模拟舵机(库函数版)
数字舵机 vs 模拟舵机 "数字舵机区别于传统的模拟舵机,模拟舵机需要给它不停的发送PWM信号,才能让它保持在规定的位置或者让它按照某个速度转动,数字舵机则只需要发送一次PWM信号就能保持在 ...
- STM32单片机一个定时器输出不同频率PWM波
在使用STM32单片机输出PWM波形的时候,通常可以直接使用定时器提供的PWM模式.可以通过自动重装载寄存器(TIMx_ARR)来设置定时器的输出频率,然后通过捕获/ 比较寄存器 1(TIMx_C ...
- STM32单片机:定时器TIM输出PWM波
学习32单片机过程中使用的工具:MDK Keil5 + 正点原子精英版(STM32F103ZET6)+ STM32CubeMX + HAL开发 一.PWM的产生原理 关于PWM的产生原理网上有很多教程 ...
- STM32一个定时器同时捕获4路PWM波
问题的提出: 最近需要用航模遥控器控制遥控车,32单片机做主控,需要用到4个通道即需要捕获4路PWM波.如果用四个定时器来捕获四路PWM波,就太浪费资源了.由于STM32单片机的定时器资源有限,故设想 ...
- stm32+定时器PWM波+电机驱动+直流电机
利用stm32单片机控制直流电机. 硬件部分:stm32f103c8t6.TB6612电机驱动模块.直流减速电机 首先搞明白原理.例如一个12v的直流电机,在其两端接上12v的电压,电机会满额转动,转 ...
- 使用STM32测量脉宽可变的PWM波的脉冲宽度
最近受疫情影响导致我莫得办法出去玩,打游戏一不小心又给打通关了就只能找点东西玩玩了,所以就有了下面这篇文章......搞这个东西的时候遇见一些好玩的问题,我写在第6部分,希望能帮到看到这篇小文章的同志 ...
- STM32 cubeMX下配置STM32单片机使无源蜂鸣器输出PWM波并放音乐
1.首先我们要了解定时器(timer) timer分为三种:高级定时器(tim1,tim8),基本定时器(tim6,tim7),通用定时器(tim2,tim3,tim4,tim5). 基本定时器:它有 ...
- STM32:利用PWM波控制飞盈电调过程和注意事项
STM32:利用PWM波控制电调过程和注意事项 在进行模型控制的过程中,如四旋翼无人机等,需要用到电机,这些电机需要通过电调来控制电机的转速.在电调模块中带有的说明书一般都是利用遥控器进行控制,有些情 ...
- STM32之PWM波
说起PWM波,做过智能小车的人肯定都很清楚了,其实他就是一种脉宽调制.在智能小车上,我们一般用PWM波来控制小车的速度,通过控制方波中高低电平的比例,来达到控制小车转速的目的.而32的芯片他提供了专门 ...
- STM32学习日记3---定时器TIM3重映射PWM波呼吸灯实验
文章目录 1. 代码 关于PWM波的输出,我们需要用到定时器的4个通道(通用定时器和高级定时器有,基本定时器没有这4个通道)里面的PWM生成.然后查看数据手册,了解定时器的重映射引脚情况.所以配置时, ...
最新文章
- 算法---------数组-----------翻转单链表
- 反转链表—leetcode206
- 注解_自定义注解_属性定义
- Windows Phone开发(30):图形 转:http://blog.csdn.net/tcjiaan/article/details/7453028
- Java异常处理原则与技巧总结
- redis笔记_源码_内存分配
- 计算机应用基础(专)(专22春) (2)
- 抓取每天必应bing背景图片
- 网吧服务器多长时间维护,网吧服务器常用设置维护工具
- Linux随笔19-MySQL主从复制、Percona XtraBackup实现全量和增量备份、ProxySQL实现读写分离
- 《环太平洋》视觉特效分解
- react native 使用阿里字体图标库
- 接入Apple Pay流程
- 关于22年应届生就业难发表一些自己的想法
- Win10激活失败的原因之一
- 阿里云服务器和腾讯云服务器哪个更好?多维度对比得出了结论
- oracle添加序列
- 3D轮廓检测技术讲解
- 关于java中创建对象时属性的初始化过程
- 关于python中matplotib.pyplot中cm的介紹
热门文章
- java小游戏实战局域网联机_结对编程3——黄金点小游戏实现局域网联机
- java 读取文件成字节数组_java读取文件为字节数组
- com组件调用regsvr32的时候调试DllRegisterServer时候遇到的问题
- GDI函数 StretchDIBits,StretchBlt 缩小图片会有黑点的问题解决办法
- Shapefile简介
- 闽南理工学院教务网络管理系统所有服务器,闽南理工学院教务管理网络系统登录入口 http://222.77.99.244:8094/jwweb/,精英高考网...
- 避免社会工程和网络钓鱼攻击
- 基于android的学生选课信息app
- 微信聊天记录数据分析
- android 直播推流sdk,大牛直播Android推流端SDK说明