- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于STM32的SPWM源代码
1、TIMER输出PWM基本概念
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出。
1.1 PWM输出模式
STM32的PWM输出有两种模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位确定的(“110”为模式1,“111”为模式2)。模式1和模式2的区别如下:110:PWM模式1-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电平;在向下计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。111:PWM模式2-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电平。由此看来,模式1和模式2正好互补,互为相反,所以在运用起来差别也并不太大。而从计数模式上来看,PWM也和TIMx在作定时器时一样,也有向上计数模式、向下计数模式和中心对齐模式,关于3种模式的具体资料,可以查看《STM32参考手册》的“14.3.9 PWM模式”一节,在此就不详细赘述了。
1.2 PWM输出管脚
PWM的输出管脚是确定好的,具体的引脚功能可以查看《STM32参考手册》的“8.3.7 定时器复用功能重映射”一节。在此需要强调的是,不同的TIMx有分配不同的引脚,但是考虑到管脚复用功能,STM32提出了一个重映像的概念,就是说通过设置某一些相关的寄存器,来使得在其他非原始指定的管脚上也能输出PWM。但是这些重映像的管脚也是由参考手册给出的。比如说TIM3的第2个通道,在没有重映像的时候,指定的管脚是PA.7,如果设置部分重映像之后,TIM3_CH2的输出就被映射到PB.5上了,如果设置了完全重映像的话,TIM3_CH2的输出就被映射到PC.7上了。
1.3 PWM输出信号
PWM输出的是一个方波信号,信号的频率是由TIMx的时钟频率和TIMx_ARR预分频器所决定的,具体设置方法在前面一个学习笔记中有详细的交代。而输出信号的占空比则是由TIMx_CRRx寄存器确定的。其公式为“占空比=(TIMx_CRRx/TIMx_ARR)*100%”,因此,可以通过向CRR中填入适当的数来输出自己所需的频率和占空比的方波信号。
2、TIMER输出PWM源代码
#include stm32f10x.h
/* Private typedef -----------------------------------------------------------*/
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
u16 TimerPeriod = 7200;
u16 DutyFactor = 50;
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
void RCC_Configure();
void GPIO_Configure();
void TIM_Configure();
您可能关注的文档
- 备孕关注:8项检查孕前必不可少.doc
- dream house系列窗帘 装饰我的梦.docx
- 密闭空间安全分析.docx
- 冬换季的敏感季节孩子体质较弱抵抗力差容易遭受流感病毒袭击.pdf
- 2010湖岗二中学期计划.doc
- 594新农村建设中提高农民科技素质的问题研究.pdf
- 第一节课 勾股定理.doc
- 魅族MX3引领2013年9月上市手机.docx
- 小学2010年师德师风建设方案.doc
- 坏死性小肠结肠炎的影像学表现_顾海斌.pdf
- 2024年兴源轮胎集团有限公司校园招聘62人【重点基础提升】模拟试题附带答案附答案【突破训练】.docx
- 2024年中国杭州青春宝集团有限公司招聘762人公开引进急需紧缺人才笔试参考题库答案题库【网校专用】.docx
- 2024年中国航空工业集团有限公司招聘(高频重点提升专题训练)共100题附带答案题库附答案(培优A卷.docx
- 2024年厦门正新橡胶工业有限公司校园招聘公开引进高层次人才笔试答案大全含答案(研优卷).docx
- 2023-24年鹏思特(天津)实业有限公司毕业生专项招聘生产储备岗模拟试题附带答案题库及答案【历年真.docx
- 2024平顶山煤业有限责任公司总部社会招聘补招7人模拟试题(共100题)附带答案完整题库带答案(满分.docx
- 2024年东北特钢集团北满特殊钢有限责任公司定向招聘历年高频难、易错点模拟试题附带答案题库有答案解析.docx
- 2024年中国石油化工股份有限公司招聘1人公开引进高层次人才笔试参考题库答案题库及参考答案(考试直接.docx
- 第10章水下爆破.pptx
- 6、道路面层监理实施细则.doc
文档评论(0)