STM32学习笔记-PWM波形输出.pdf

上传人:wj151****6093 文档编号:73700782 上传时间:2023-02-21 格式:PDF 页数:4 大小:261.33KB
返回 下载 相关 举报
STM32学习笔记-PWM波形输出.pdf_第1页
第1页 / 共4页
STM32学习笔记-PWM波形输出.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《STM32学习笔记-PWM波形输出.pdf》由会员分享,可在线阅读,更多相关《STM32学习笔记-PWM波形输出.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 调试芯片:STM32F103C8T6 外部晶振:8MHz 功能介绍:使用 Timer3 实现两路(可四路)PWM 波形的输出 代码如下:初始化:系统时钟初始化,GPIO 端口初始化,Timer 初始化 系统时钟初始化:1./*配置系统时钟为 72M*/GPIO 端口初始化:2.3.4.5.6.*函数名:void GPIO_Config(void)*描述:配置复用输出 PWM 时用到的 I/O*输入*输出*调用:main()调用 Timer 初始化:2.3.*函数名:void TIM3_Config(void)*描述:配置 TIM3 输出的 PWM 信号的模式 电平在后)2.SystemIni

2、t();1./*:无:无 7.*/8.void GPIO_Config(void)9.10.GPIO_InitTypeDef GPIO_InitStructure;11.12./*GPIOA and GPIOB clock enable*/13.RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);14.19.GPIO_Init(GPIOA,&GPIO_InitStructure);20.1./*4.*CH1:输出 T=2.5ms(f=1/2.5ms=400Hz)D=0.6 的 PWM 波(高电平在前,低 15./*GPIOA Configur

3、ation:TIM3 channel 1 and 2 as alternate function push-pull*/16.GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7;17.GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;挽输出/复用推 18.GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;电平在前)6.*9.*10.*步骤一:通过 T 和 TIMxCLK 的时钟源确定 TIM_Period 和 TIM_Prescaler 所以 TIM_Period

4、=59999=0 xEA5F 步骤二:根据 TIM_Period 的值,高低电平的先后 D,确定 CCR 和 11.TIM_OCPolarity*CH1:因为 D=0.6,先高后低;12.*所以 CCR1=(TIM_Period+1)13.*D=36000;TIM_OCPolarity=TIM_OCPolarity_High *CH2:因为 D=0.4,先高后低;14.*所以 CCR1=(TIM_Period+1)*(1-D)=36000;TIM_OCPolarity=TIM_OCPolarity_Low 15.*16.*17.*18.*步骤五:使能 TIM3 重载寄存器 ARR 步骤六:使能

5、 TIM3 19.20.21.*输入*输出*调用:main()调用 27.30./*PWM 信号电平跳变值*/*PCLK1 经过 2 倍频后作为 TIM3 的时钟源等于 72MHz*/设置预分频:预分频=2,即为 72/3=24MHz/设置时钟分频系数:不分频 /向上计数溢出模式 5.*CH2:输出 T=2.5ms(f=1/2.5ms=400Hz)D=0.4 的 PWM 波(高电平在后,低 7.*T=(TIM_Period+1)*(TIM_Prescaler+1)/TIMxCLK=2.5ms 8.*TIM_Prescaler=2 因为 TIM_Period1,即 步骤三:基础寄存器初始化 步骤

6、四:通道寄存器初始化:无:无 22.*/23.void TIM3_Config(void)24.25.TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;26.TIM_OCInitTypeDef TIM_OCInitStructure;28.u16 CCR1=36000;29.u16 CCR2=36000;31.RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);32./*Time base configuration*/33.TIM_TimeBaseStructure.TIM_Period=0 xEA5

7、F;34.TIM_TimeBaseStructure.TIM_Prescaler=2;35.TIM_TimeBaseStructure.TIM_ClockDivision=0;36.TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;37.TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);38./*PWM1 Mode configuration:Channel1*/2.3.4.5./配置为 PWM 模式 1 /设置跳变值,当计数器计数到这个值时,电平发生跳变 /当定时器计数值小于 CCR1

8、时为高电平 /使能通道 1 /设置通道 2 的电平跳变值,输出另外一个占空比的 PWM/当定时器计数值小于 CCR2 时为低电平 /使能通道 2 /使能 TIM3 重载寄存器 ARR /使能 TIM3 主函数代码:*函数名:main*描述*输入*输出 39.TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;40.TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;41.TIM_OCInitStructure.TIM_Pulse=CCR1;42.TIM_OCInitStructure.T

9、IM_OCPolarity=TIM_OCPolarity_High;43.TIM_OC1Init(TIM3,&TIM_OCInitStructure);44.TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);45./*PWM1 Mode configuration:Channel2*/46.TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;47.TIM_OCInitStructure.TIM_Pulse=CCR2;48.TIM_OCInitStructure.TIM_OCPolar

10、ity=TIM_OCPolarity_Low;49.TIM_OC2Init(TIM3,&TIM_OCInitStructure);50.TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);51.TIM_ARRPreloadConfig(TIM3,ENABLE);52./*TIM3 enable counter*/53.TIM_Cmd(TIM3,ENABLE);54.1./*:主函数:无:无 6.*/7.int main(void)8.9.SystemInit();10.GPIO_Config();11.TIM3_Config();12.while(1)13.14.15.最后上结果图:疑问:虽然不影响用,但是为什么第一个周期不正确,正确的 波形是从第二个周期开 始输出的?16.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁