STM32 F1 TIM2 4通道PWM同时出波配置

2019-08-21来源: eefocus关键字:STM32  F1  TIM2  4通道  PWM  出波配置

void TIM2_PWM_Init(u16 arr,u16 psc)

{  

GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;

 

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);// 

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);  

                                                                     

 

  

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //TIM2_CH1

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //TIM2_CH2

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //TIM2_CH3

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

 

 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

 

 

TIM_TimeBaseStructure.TIM_Period = arr;

TIM_TimeBaseStructure.TIM_Prescaler =psc; 

TIM_TimeBaseStructure.TIM_ClockDivision = 0; 

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); 

 

 

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 

TIM_OCInitStructure.TIM_Pulse = 0; 

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 

TIM_OC1Init(TIM2, &TIM_OCInitStructure);  

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 

TIM_OCInitStructure.TIM_Pulse = 0; 

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 

TIM_OC2Init(TIM2, &TIM_OCInitStructure);  

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 

TIM_OCInitStructure.TIM_Pulse = 0; 

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 

TIM_OC3Init(TIM2, &TIM_OCInitStructure);  

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 

TIM_OCInitStructure.TIM_Pulse = 0; 

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 

TIM_OC4Init(TIM2, &TIM_OCInitStructure);  

 

  TIM_CtrlPWMOutputs(TIM2,ENABLE);

 

TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);   

TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);   

TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);   

TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);  

TIM_ARRPreloadConfig(TIM2, ENABLE); 

TIM_Cmd(TIM2, ENABLE);  

 

   

}


关键字:STM32  F1  TIM2  4通道  PWM  出波配置

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic471917.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32 F1 TIM8 4通道同时PWM出波 4通道同时PWM输出
下一篇:STM32 TIM1 F1 四通道完全重映射PWM 配置

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8控制4位LED数码管显示数字

用4位LED显示数字 #define STB_H         GPIOC->ODR |= (uint8_t)(GPIO_PIN_2)#define STB_L         GPIOC->ODR &= (uint8_t)(~GPIO_PIN_2) #define DATA_H         GPIOE->ODR |=(uint8_t)( GPIO_PIN_5)#define DATA_L     
发表于 2019-09-21
STM8控制4位LED数码管显示数字

STM32中stm32f0xx_flash.icf文件的作用详解!

每个芯片开发商都会针对每款芯片来编写一个.icf文件就是传说中的链接文件。对于基本的应用,这个.icf文件足以满足你的工程需要。但有时也会需要改动,比如当你的项目要添加外部RAM时就要修改一下icf。1、Icf到底干了啥呢?定义了芯片存储空间的大小。定义ROM的大小和起始、结束地址。定义RAM的大小和起始、结束地址。 当然这些都是最基本的,你也可以设置以下的东西来匹配你的具体项目。链接时是否保存位块与符号设置你的启动过程设置你的堆与栈的大小和对齐方式修改编译器默认的初始化过程。关于默认库的处理等。。。 2、下面我简单介绍几个功能,详细请参考 EWARM_DevelopmentGuide2.1  
发表于 2019-09-21
STM32中stm32f0xx_flash.icf文件的作用详解!

STM32 USART串口DMA 接收和发送的源码详解!

硬件平台:STM32F103ZET6; 开发环境:KEIL 4;先说说应用通讯模式,串口终端的工作方式和迪文屏差不多,终端被动接受MCU发的指令,终端会偶尔主动发送一些数据给MCU(像迪文屏的触摸信息上传)。串口DMA发送:发送数据的流程:前台程序中有数据要发送,则需要做如下几件事1.在数据发送缓冲区内放好要发送的数据,说明:此数据缓冲区的首地址必须要在DMA初始化的时候写入到DMA配置中去。2.将数据缓冲区内要发送的数据字节数赋值给发送DMA通道,(串口发送DMA和串口接收DAM不是同一个DMA通道)3.开启DMA,一旦开启,则DMA开始发送数据,说明一下:在KEIL调试好的时候,DMA和调试是不同步的,即不管Keil
发表于 2019-09-21

stm32上电自启动后运行不正常的故障排查分析

最近负责一个项目,用到stm32f4的一款高性能芯片。研发过程中遇到一个很诡异的现象,前前后后折腾了两三天,最后才搞定。由于是新手,经验不足,排故过程很纠结~~现象如下:采用JLINK下载程序后,断电让其上电重新启动,发现有时可以正常运行,有时候无法正常运行,大约每两、三次就有一次无法正常上电启动。2.通过JLINK调试程序,每次均正常运行。太诡异了!发现问题后开始定位原因。首先考虑是BOOT启动出问题了,stm32f4启动方式分三种:User FLash、SystemFlash和EmbeddedSRAM,通过BOOT0和BOOT1管脚配置。程序正常运行时从User FLash启动,如果BOOT0和BOOT1配置不正确,会导致无法
发表于 2019-09-21

STM32的时钟系统RCC详细整理

ate NewState);// 使能或者失能PLL//输入:ENABLE或者DISABLE#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) void RCC_PREDIV1Config(uint32_t RCC_PREDIV1_Source, uint32_t RCC_PREDIV1_Div);//#endif#ifdef  STM32F10X_CL void RCC_PREDIV2Config(uint32
发表于 2019-09-21
STM32的时钟系统RCC详细整理

IAR EW6.30版本下建立STM32工程(芯片型号STM32F105VC)

=2blE__GxI1lmJglihBi5xJQPolza-NMxcZqGThxwysiY80ZOe6hLl5k6mowbTN2j30WsPftFZsBe1pRt8WlCDIT7Ce5EIReo4uGCEyegh7S(IAR 新建 STM32工程)        4,http://blog.sina.com.cn/s/blog_4c8287230100f0jw.html(IAR 新建 STM32工程)        5,http://blog.sina.com.cn/s/blog_4c8287230100eznh.html(IAR使用说明)        6,http://blog.sina.com.cn/s/blog_4c8287230100f2ah.html
发表于 2019-09-21
IAR EW6.30版本下建立STM32工程(芯片型号STM32F105VC)

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved