STM32__定时器与_PWM_快速使用入门.doc_第1页
STM32__定时器与_PWM_快速使用入门.doc_第2页
STM32__定时器与_PWM_快速使用入门.doc_第3页
全文预览已结束

下载本文档

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

文档简介

STM32定时器与PWM快速使用入门要求:在万利的开发板EK-STM32F上产生周期为1秒,占空比分别为5010的PWM并且点亮板上的LD1,LD2灯闪烁。做法很简单。STM32的PWM是由定时器来产生的。可以看出。定时器3的通道1至4在GPIO端口的映像。如果是完全映射。各通道的连接引脚如下:CH1=PC6,CH2=PC7,CH3=PC8,CH4=PC9这样,刚好与板上的LD1,LD2灯符合,因为LD1连接到PC7,LD2连接到PC6引脚。关于PWM一些知识.STM32的TIMx是TIMx_ARR寄存器确定频率(周期)、由TIMx_CCRx寄存器确定占空比的信号。使用定时器3。而TIM2、3、4的时钟源是APB1即是PCLK1(APB1对应PCLK1)PCLK1=APB1=HCLK/2=SYSCLK/2=36MHZ(36,000,000HZ)但是注意:倍频器会自动倍2,即是【72MHZ】!代码如下:voidSTM32_PWM_GPIO_Configuration(void)/11:完全映像STM32_Afio_Regs->mapr.bit.TIM3_REMAP=3;/LD1=P7LD2=PC6/*GPIOAConfiguration:(PC6PC7)TIM3channel1and2asalternatefunctionpush-pull*/STM32_Gpioc_Regs->crl.bit.CNF6=Output_Af_push_pull;/PC.06复用功能推挽输出模式STM32_Gpioc_Regs->crl.bit.MODE6=Output_Mode_50mhz;/PC.06输出模式,最大速度50MHzSTM32_Gpioc_Regs->crl.bit.CNF7=Output_Af_push_pull;/PC.07复用功能推挽输出模式STM32_Gpioc_Regs->crl.bit.MODE7=Output_Mode_50mhz;/PC.07输出模式,最大速度50MHz/endsubvoidSTM32_TIM3_Configuration(void)/TIM_DeInit(TIM3);/复位TIM3定时器STM32_Rcc_Regs->apb1rstr.all|=RCC_TIM3RST;STM32_Rcc_Regs->apb1rstr.all&=RCC_TIM3RST;/时钟使能STM32_Rcc_Regs->apb1enr.all|=RCC_TIM3EN;/*TIM3baseconfiguration*/TIM_TimeBaseStructure.TIM_Period=9999;/TIM_TimeBaseStructure.TIM_Prescaler=7200;/TIM_TimeBaseStructure.TIM_ClockDivision=0x0;/TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;/TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);STM32_Tim3_Regs->arr.all=9999;/定时周期,PWM频率!10毫秒*100=1秒STM32_Tim3_Regs->psc.all=720;/7200分频72MHZ/72,0072,000,000/72,00=10,000STM32_Tim3_Regs->cr1.bit.CKD=0;/时钟分频因子STM32_Tim3_Regs->cr1.bit.DIR=0;/0:计数器向上计数/*ClearTIM3updatependingflag清除TIM3溢出中断标志*/TIM_ClearFlag(TIM3,TIM_FLAG_Update);STM32_Tim3_Regs->sr.bit.UIF=0;/更新中断标记由软件清0,例如当上溢或下溢时,软件对CNT重新初始化/*PWM1Modeconfiguration:Channel1Channel2*/TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;/TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;/TIM_OCInitStructure.TIM_Pulse=CCR1_Val;/TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;/TIM_OC1Init(TIM3,&TIM_OCInitStructure);/timer3的通道1是PC6引脚,AFIO完全映射STM32_Tim3_Regs->ccer.bit.CC1P=0;/输入/捕获1输出极性0:OC1高电平有效1:OC1低电平有效STM32_Tim3_Regs->ccer.bit.CC1E=1;/输入/捕获1输出使能1:开启OC1信号输出到对应的输出引脚。STM32_Tim3_Regs->ccer.bit.CC2P=0;/输入/捕获2输出极性0:OC1高电平有效1:OC1低电平有效STM32_Tim3_Regs->ccer.bit.CC2E=1;/输入/捕获2输出使能1:开启OC2信号输出到对应的输出引脚。STM32_Tim3_Regs->ccmr1.ou_bit.CC1S=0;/00:输出比较1通道1被配置为输出STM32_Tim3_Regs->ccmr1.ou_bit.CC2S=0;/00:输出比较2通道2被配置为输出STM32_Tim3_Regs->ccmr1.ou_bit.OC1M=6;/0110:PWM模式1STM32_Tim3_Regs->ccmr1.ou_bit.OC2M=6;/0110:PWM模式1STM32_Tim3_Regs->ccr1.all=5000;/占空比50STM32_Tim3_Regs->ccr2.all=1000;/10/TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);STM32_Tim3_Regs->ccmr1.ou_bit.OC1PE=1;/OC1PE:输出比较1预装载使能1:开启TIMx_CCR1寄存器的预装载功能STM32_Tim3_Regs->ccmr1.ou_bit.OC2PE=1;/OC1PE:输出比较2预装载使能1:开启TIMx_CCR2寄存器的预装载功能/TIM_ARRPreloadConfig(TIM3,ENABLE);STM32_Tim3_Regs->cr1.bit.ARPE=1;/7自动重装载预装载允许位0:TIM1_ARR寄存器没有缓冲/TIM3enablecounter/TIM_Cmd(TIM3,ENABL

温馨提示

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

评论

0/150

提交评论