STM32单片机学习笔记(6):PWM波形产生_第1页
STM32单片机学习笔记(6):PWM波形产生_第2页
STM32单片机学习笔记(6):PWM波形产生_第3页
STM32单片机学习笔记(6):PWM波形产生_第4页
STM32单片机学习笔记(6):PWM波形产生_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页STM32单片机学习笔记(6):PWM波形产生

项目简介利用CubMX生成基于32(单片机)的HAl库工程,然后编写程序在(proteus)上(仿真)验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门(STM32)单片机。这是第六部分针对STM32单片机内置(TI)M模块的PWM波形产生的学习和理解。

(硬件)模块STM32F103R4

(示波器)

软件工具CubMX

Proteus

(KEIL)

电路连接图

工作流程首先,在CubMX种设置号一些参数,选择TIM1(定时器),按下图设置好工作模式。输出PWM的引脚是PB15引脚。

然后再按下图设置好预分频和计数值

最好设置好占空比,占空比=Pulse/Per,比如想要设置占空比为20%,而上面设置了计数值为1000,那么按照这个占空比,就照下图设置好Pulse为200即可。

然后生成工程。

增加输出PWM的代码。

出现问题了,上网查了一下好像是超出了单片机内部的资源。网上(推荐)的方法是直接换一个型号的32单片机,但是我不想用这种方法,后来我删掉一行有浮点运算的Printf函数就可以了,可能是printf用的太多了,太占内存。可以运行了,但是一开始还是没有PWM波形输出,于是我换了个通道,如下图。

Prescaler:分频值,可以设置为0

Coun(te)rMode:计数模式

CounterPeriod:自动装载值

Auto-relo(ad)preload:使能自动装载功能

Mode:PWM波模式

Pulse:计数比较值

CHPolarity:输出极性

输出的结果如下图,这是20%的

然后改变占空比为50%

输出波形

至此,PWM模块完成。

(程序代码)mian.c

intmain(void){/*(MCU)Configuration*//*Resetofallperipherals,InitializestheFlashinterfaceandtheSyst(ic)k.*/HAL_Init();/*USERCODEBEGINInit*//*USERCODEENDInit*//*Configurethesystemclock*/SystemClock_Config();/*USERCODEBEGINSysInit*//*USERCODEENDSysInit*//*Initializeallconfiguredperipherals*/MX_GPIO_Init();//MX_(ADC)1_Init();//MX_USART1_(UART)_Init();MX_TIM1_Init();/*USERCODEBEGIN2*//*USERCODEEND2*//*Infiniteloop*//*USERCODEBEGINWHILE*/;HAL_TIM_PWM_Start(//开启PWM波形输出__HAL_TIM_SET_COMPARE(//改变占空比,500/1000=50%while(1){/*USERCODEENDWHILE*//*USERCODEBEGIN3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论