STM32使用PWM

这篇具有很好参考价值的文章主要介绍了STM32使用PWM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、PWM简介(Pulse width modulation)

1.定义:PWM,就是脉冲宽度调制,也就是占空比可变的脉冲波形。
2.适用条件:PWM所应用的场景必须为惯性系统,像led,当立即变为低电平时,led并不会瞬间熄灭,而是具有惯性,在短时间内为逐渐熄灭。
3.应用:智能车,机器人等项目。呼吸灯、驱动电机等。

二、频率

频率为Ts的倒数,频率越大,则等效模拟信号越平稳。(即输出的方波整体上较为密集)

三、占空比(Duty Ratio)

1.定义:占空比指在一个脉冲循环内,通电时间相对于总时间所占的比例。(或者说在一个周期中,高电平的时间占整个周期的时间
2.计算:D=Ton/Ts(Ton为一个周期内高电平的时间、Ts为高低电平变换周期的时间)
3.作用:频率一定时,可以通过改变占空比来调节电压
例如高电平为5V,低电平为0V时,占空比为80%时,可以看作为4/5处的电压,即4V。
stm32pwm,STM32,stm32,单片机,嵌入式硬件

四、分辨率

1.定义:是指PWM最小能设定到的高电平时间所占周期的比例,即最小占空比
2.在一个时钟下,若降低频率,则周期变大,分辨率增大。

五、STM32使用pwm

1.输出比较OC(Output Compare)

如图
stm32pwm,STM32,stm32,单片机,嵌入式硬件
流程:在进行CNT与CCR比较后,其结果在经过输出比较电路后,通过TIM_CH1输出到GPIO引脚上。

原理:通过进行对CNT计数器CCR捕获比较寄存器的比较,来输出一个电平不断跳变的PWM方波。
每当CNT=RCC时,就会进行一次电平翻转,CNT>CCR且小于ARR(即在一个周期内)时输出高电平。

2.输出比较电路

stm32pwm,STM32,stm32,单片机,嵌入式硬件

原理:当CNT大于或等于CCR时,传输信号至控制器,后改变其输出的电平。

3.通用计时器

通用计时器共有4个RCC寄存器,且他们公用一个CNT计数器。

六、通过STM32输出50%占空比的PWM

1.思路

1.RCC开启时钟(GPIO和TIM)
2.选择时基单元的时钟源(定时中断选择内部时钟源)
3.配置时基单元(预分频器、自动重装器、计数模式)
4.配置CCR的值、输出比较模式、极性选择、输出使能的等参数
5.配置GPIO(PWM对应的GPIO使用复用推挽输出模式)

2.代码(PWM.c)

void PWM_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	//GPIO初始化
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//开启通用定时器TIM2的时钟
	TIM_InternalClockConfig(TIM2);//选择时基单元的时钟(默认使用内部时钟)
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
	TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;//指定时钟分频,1表示不分频
	//滤波器作用:滤掉信号的抖动干扰
	//滤波器原理:在一个固定的时钟频率f下采样,若连续N个采样点电平一致,表示输入信号稳定,则输出
	//若N个采样点电平不相同,表示信号有抖动,则直接输出低电平或输出上一次的电平
	//采样频率由内部时钟直接来或由内部时钟加时钟分频来
	TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;//计数器模式(向上/向下/中间3个)
	TIM_TimeBaseInitStructure.TIM_Period=100-1;//周期(10K的频率下计1w个数即为1s)(ARR)
	TIM_TimeBaseInitStructure.TIM_Prescaler=720-1;//预分频器(72M对7200分频,得到10K的计数频率)(PSC)
	TIM_TimeBaseInitStructure.TIM_RepetitionCounter=0;//重复计数器(高级计数器才有)
	TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructure);//初始化结构体
	TIM_OCInitTypeDef TIM_OCInit_InitStructure;
	TIM_OCStructInit(&TIM_OCInit_InitStructure);//给结构体赋初值,以免对高级定时器等造成干扰
	
	TIM_OCInit_InitStructure.TIM_OCMode=TIM_OCMode_PWM1;//设置输出比较的模式
	//TIM_OCMode_Timing        冻结模式            
	//TIM_OCMode_Active        相等时置有效电平        
	//TIM_OCMode_Inactive      相等时置无效电平
	//TIM_OCMode_Toggle        相等时电平翻转      
	//TIM_OCMode_PWM1          PW1模式         
	//TIM_OCMode_PWM2		   PW2模式
	TIM_OCInit_InitStructure.TIM_OCPolarity=TIM_OCPolarity_High;//设置输出比较的极性
	//TIM_OCPolarity_High      极性不翻转,REF有效是高电平,REF有效时输出高电平
	//TIM_OCPolarity_Low  		REF电平取反,有效电平为低电平
	TIM_OCInit_InitStructure.TIM_OutputState=ENABLE;//设置输出使能
	TIM_OCInit_InitStructure.TIM_Pulse=50;//设置CCR
	TIM_OC1Init(TIM2,&TIM_OCInit_InitStructure);
	//初始化输出比较单元
	TIM_Cmd(TIM2,ENABLE);//启动定时器
}

3.计算

stm32pwm,STM32,stm32,单片机,嵌入式硬件

4.示波器检测

stm32pwm,STM32,stm32,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-706518.html

到了这里,关于STM32使用PWM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【单片机毕设选题】stm32实现车牌识别系统 -物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(60)
  • 单片机项目分享 stm32机器视觉的人脸识别系统 - 单片机 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月22日
    浏览(84)
  • stm32毕设分享 stm32智能运动计步系统 - 物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(77)
  • 单片机项目分享 基于stm32的便携用电功率统计系统 -物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(113)
  • STM32单片机智能小车一PWM方式实现小车调速和转向

    目录 1. 电机模块开发 2. 让小车动起来 3. 串口控制小车方向 4. 如何进行小车PWM调速 5. PWM方式实现小车转向 L9110s概述 接通VCC,GND 模块电源指示灯亮, 以下资料来源官方,具体根据实际调试 IA1输入高电平,IA1输入低电平,【OA1 OB1】电机正转; IA1输入低电平,IA1输入高电平,

    2024年02月07日
    浏览(59)
  • 嵌入式STM32 单片机 GPIO 的工作原理详解

    STM32的 GPIO 介绍 GPIO 是通用输入/输出端口的简称,是 STM32 可控制的引脚。GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 以 STM32F103ZET6 芯片为例子,该芯片共有 144 脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为

    2024年02月20日
    浏览(50)
  • stm32毕设分享 stm32单片机的远程WIFI密码锁 - 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(60)
  • stm32毕设分享 基于stm32的便携用电功率统计系统 -物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月22日
    浏览(62)
  • 【单片机毕设选题】 stm32智能运动计步系统 - 物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(67)
  • 单片机项目分享 stm32机器视觉的口罩佩戴检测系统 - 单片机 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月22日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包