STM32 TIM1 F1 四通道完全重映射PWM 配置

发布者:幸福满溢最新更新时间:2019-04-09 来源: eefocus关键字:STM32  TIM1  四通道  重映射  PWM  配置 手机看文章 扫描二维码
随时随地手机看文章

void TIM1_PWM_Init(u16 arr,u16 psc)

{  

GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;

 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);// 

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE , ENABLE);  

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);                                                                   

    GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,ENABLE);                                                                    

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; //TIM1_CH3

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOE, &GPIO_InitStructure);


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; //TIM1_CH4

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOE, &GPIO_InitStructure);

 


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //TIM1_CH2

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOE, &GPIO_InitStructure);

 

 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; 

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOE, &GPIO_InitStructure);

    GPIO_ResetBits(GPIOE,GPIO_Pin_9);

 


TIM_TimeBaseStructure.TIM_Period = arr; 

TIM_TimeBaseStructure.TIM_Prescaler =psc;  

TIM_TimeBaseStructure.TIM_ClockDivision = 0; 

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  

TIM_TimeBaseInit(TIM1, &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(TIM1, &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(TIM1, &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(TIM1, &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(TIM1, &TIM_OCInitStructure);  

    TIM_CtrlPWMOutputs(TIM1,ENABLE);

 

TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);   

TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);  

TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable);  // 

TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable);  //  


TIM_ARRPreloadConfig(TIM1, ENABLE); //


TIM_Cmd(TIM1, ENABLE);  //

 

   

}

关键字:STM32  TIM1  四通道  重映射  PWM  配置 引用地址:STM32 TIM1 F1 四通道完全重映射PWM 配置

上一篇:stm32中pwm频率和占空比设置
下一篇:STM32八种输入输出模式详解

推荐阅读最新更新时间:2024-03-16 16:26

一步步写STM32 OS【一】 序言
  一直想写个类似uCOS的OS,近段时间考研复习之余忙里偷闲,总算有点成果了。言归正传,我觉得OS最难的部分首先便是上下文切换的问题,他和MCU的架构有关,所以对于不同的MCU,这部分需要移植。一旦这个问题解决了,整个OS算是成功了一半了,当然,是对于简单的OS。   好了,要写一个OS,首先需要一个开发板和仿真器。我的开发板是STM32F4DISCOVERY,自带ST-LINK V2仿真器,板载MCU为STM32F407VGT6,支持FPU,32位ARM Cortex-M4F核,1024KB FLASH,192 KB RAM,总之很强大。对STM32其他系列,本OS几乎不需修改修改就可使用。开发环境为IAR for ARM
[单片机]
MSP430G2553时钟外部晶振配置说明
摘要:关于MSP430G2553的时钟分类以及ACLK,MCLK和SMCLK的时钟源以下均不会做具体解释,在百度或者CSDN能搜到好多相关的说明文章。本文主要论证一下ACLK,MCLK和SMCLK可选作为时钟源的LFXT1CLK的频率是多少。在BAIDU以及TAOBAO中搜索不到下图电路板中的无源晶振,所以想要自己动手对其进行推导。(2553的技术文档介绍中该晶振为32kHz晶振) 主要思路: 配置相关时钟寄存器,将外部晶振LFXT1CLK作为SMCLK的时钟源,SMCLK作为定时器A的时钟源,配置定时器使相应引脚输出PWM波,根据PWM波的频率,最终推导出LFXT1CLK对应的外部无源晶振的频率。 小试牛刀 本步主要
[单片机]
MSP430G2553时钟外部晶振<font color='red'>配置</font>说明
高效低纹波如何提供无缝PWM省电转换
作为普通人,我们每天都要在不同的产品选项之间做出权衡。我真的很想开一辆鲜红色的昂贵运动跑车,可我根本攒不够这么多钱去买。不过每当我在我家附近的小卖部买东西时,总喜欢摆阔,买 Blue Bell 冰激淋,不买该店品牌的冰激淋。对我来说,这类权衡与我在日常生活中所做的无数其它权衡都与我所能接受的购买商品的价值息息相关。开高档车的价值并不值买丰田车的价差,但整整 1/2 加仑容器中更美味冰激淋的价值当然就很值了。 作为工程师,我们面临设计挑战时也要对呈现在我们面前各种选项做出权衡。对于新一代智能手机或平板电脑的设计,还要用前一代机型使用的电源吗?或者我应该采用能够实现更高性能与更便捷系统集成的较新电源?在新应用中设计重复利用与优化老
[电源管理]
STM32串口中断方式接收
void RCC_Configuration(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); } 首先中断的配置 void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; #ifdef VECT_TAB_RAM NVIC_SetVectorTable(NVIC_VectTab_RAM,
[单片机]
STM32 JTAG端口作为普通I/O口使用的方法
STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。 有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。具体方法如下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //开启AFIO时钟 GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); // 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP) GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable ,
[单片机]
I2C—读写EEPROM 实验
EEPROM 是一种掉电后数据不丢失的存储器,常用来存储一些配置信息,以便系统重新上电的时候加载之。EEPOM 芯片最常用的通讯方式就是I2C 协议,本小节以EEPROM的读写实验为大家讲解STM32 的I2C 使用方法。实验中STM32 的I2C 外设采用主模式,分别用作主发送器和主接收器,通过查询事件的方式来确保正常通讯。 硬件设计 EEPROM 硬件连接图 本实验板中的EEPROM芯片(型号:AT24C02)的SCL 及SDA 引脚连接到了STM32 对应的I2C 引脚中,结合上拉电阻,构成了I2C 通讯总线,它们通过I2C 总线交互。EEPROM芯片的设备地址一共有7 位,其中高4 位固定为:1010 b,低3
[单片机]
I2C—读写EEPROM 实验
基于IAP的STM32程序更新技术
引言 嵌入式系统的开发最终需要将编译好的代码下载到具体的微控制器芯片上,而不同厂家的微控制器芯片有不同的下载方式。随着技术的发展和应用需求的更新,用户程序加载趋向于在线编程的方式,越来越多的芯片公司提供和开放了用户更新程序的接口与方式,以提高整个系统的可靠性和可维护性。 ST公司基于CortexM3内核的STM32系列产品得到了广泛应用,在许多基于STM32系列产品的开发过程中不可避免要进行用户程序的加载。本文在介绍IAP技术原理基础上,详细论述使用该技术在STM32F103ZE芯片上实现用户在线更新功能的方法,并具体分析其中可能发生异常的原因。 1背景综述 1.1主要程序更新方式 目前,除了直接通过仿真器或烧
[单片机]
基于IAP的<font color='red'>STM32</font>程序更新技术
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved