stm32 的定时器4产生PWM

发布者:幸福时刻最新更新时间:2018-06-28 来源: eefocus关键字:stm32  定时器  PWM 手机看文章 扫描二维码
随时随地手机看文章

利用PB9产生PWM信号




一、引脚初始化


        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOB, &GPIO_InitStructure);


二、定时器初始化


void TIM4_Config(void)

 // GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;

 

TIM_DeInit(TIM4);

// ƵÂÊ30K

//Õ¼¿Õ±È50%

 // TIM_TimeBaseStructure.TIM_Period = 100-1; 

//TIM_TimeBaseStructure.TIM_Prescaler =24-1;

// ƵÂÊ20K

//Õ¼¿Õ±È50%

// TIM_TimeBaseStructure.TIM_Period = 100-1; 

// TIM_TimeBaseStructure.TIM_Prescaler =36-1;

// ƵÂÊ10K

//Õ¼¿Õ±È50%

//TIM_TimeBaseStructure.TIM_Period = 100-1; 

//TIM_TimeBaseStructure.TIM_Prescaler =72-1;

// ƵÂÊ1K

 

TIM_TimeBaseStructure.TIM_Period = 1000-1; 

TIM_TimeBaseStructure.TIM_Prescaler =72-1;

TIM_TimeBaseStructure.TIM_ClockDivision = 0;

 

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

 

TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);

 

 

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;

 

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

 

TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;

 

 

//TIM_OCInitStructure.TIM_Pulse = 100;

TIM_OCInitStructure.TIM_Pulse = Optical_Source_Duty;

 

 

//

// TIM_OC3Init(TIM4, &TIM_OCInitStructure);

 

// TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);

TIM_OC4Init(TIM4, &TIM_OCInitStructure);

 

TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);

 

TIM_CtrlPWMOutputs(TIM4,ENABLE);

 

TIM_ARRPreloadConfig(TIM4, ENABLE);

 

TIM_Cmd(TIM4, ENABLE);

 

 

}


关键字:stm32  定时器  PWM 引用地址:stm32 的定时器4产生PWM

上一篇:STM32F407ZGT6实现输入捕获RX1002八路PWM信号
下一篇:stm32 基于TIM1定时器的PWM输出

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

stm32 u8g2移植笔记
前言 当初想写一个单色屏菜单时,曾移植过u8g2到STM32平台(这里用的是keil MDK),不过当时一直有一个问题没有搞懂:为什么u8g2用在flash为32k,ram为2k的arduino uno上都不会报空间不足,却在flash为512k,ram64k的stm32zet6上报错空间不足?这是由编译器导致的,arduino使用的是avr-gcc编译器在编译的时候会加-ffunction-sections -fdata-sections,链接的时候会加-Wl,-gc-sections选项,因而可以只链接用到的函数。stm32编译选项中有个类似的选项One ELF Section per Function,勾选该项可以极大的减少
[单片机]
STM32f4---PWM输出实验代码
pwm.c源文件代码如下: //TIM14 PWM部分初始化 //PWM输出初始化 //arr:自动重装值 psc:时钟预分频数 void TIM14_PWM_Init(u32 arr,u32 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE); //TIM14时钟使能 RCC_A
[单片机]
STM32F103输出可变频率的PWM信号
关于TIM4的使用我们首先必须要了解到一点,TIM4是什么?对于STM32内核来说,它是属于片上外设。内核如何使用片上外设?当然要通过内部的总线结构。以STM32F103为例,其内部总线结构如下两幅图所示: 通过这内部总线结构图我们知道,我们所想配置并使用的TIM4是挂载在内部中线APB1上的,所以我们知道我们要使用的库函数必然是和APB1总线相关的。期中与之相关的库函数包括: RCC_APB1PeriphClockCmd()、RCC_APB1PeriphResetCmd() 其中RCC_APB1PeriphClockCmd()是用于使能或者失能 APB1 外设时钟的库函数,RCC_APB1Per
[单片机]
STM32F103输出可变频率的<font color='red'>PWM</font>信号
DMPPT与PFM/PWM混合调制电路特征与应用
1 引言 便携式产品电源管理集成电路的研发己拥有脉冲频率调制(PFM)、脉冲宽度调制(PWM)及数字电源管理芯片的设计技术,并己有先进水平的系列升压芯片设计与产品。尤其是绿色能源管理芯片与分布式太阳能最大功率跟踪系统己经问世。本文将对分布式太阳能最大功率跟踪系统与脉冲频率调制(PFM)/脉冲宽度调制(PWM)混合调制电路技术特征与应用作分析说明。为此,将按照以下次序进行分析:流程内容的列表→LED恒流驱动→原理框图→管脚定义→典型应用等。 2 IV0300分布式太阳能最大功率跟踪系统(DMPPT) 目前市场上光伏系统一般都安装了太阳能最大功率跟踪系统。但普遍存在一个现象,即太阳能光伏系统中某一阵列受损将直接影
[电源管理]
STM32之I2C_EEPROM读写
EEPROM的数据组织形式: EEPROM设备把它的存储矩阵进行了分页处理: 型号是AT24C02的EEPROM分为32页,每一页可以存储8个字节的数据,若在同一页写入超过8字节,则超过的部分会被写在该页的起始地址(也就是一开始写好的部分会被覆盖). 为了把连续的缓冲区数组按页写入到 EEPROM ,就需要对缓冲区进行分页处理.I2C_EE_BufferWrite()是根据输入的缓冲区大小参数 NumByteToWrite,计算出需要写入多少页,计算写入位置。 分页处理好之后,调用 I2C_EE_PageWrite(),这个函数是与 EEPROM进行I2C通讯的最底层函数(里面都是调用STM32库函数) EEPROM写入 I2
[单片机]
stm32中断向量控制器
NVIC,中文名嵌套中断向量控制器,是Cortex-M3系列控制器内部独有集成单元,与CPU结合紧密,降低中断延迟时间并且能更加高效处理后续中断。举个例子,比如火车站买票,那些火车站的规章制度就是NVIC,规定学生和军人有比一般人更高优先级,它们则给你单独安排个窗口,同学与同学之间也有区别,那就是你也得排队,也就是你的组别(抢断优先级)和你的排队序号(响应优先级)决定你何时能买到票。 抢断优先级, 顾名思义 ,能再别人中断是抢占别人中断,实现中断嵌套。响应优先级则只能排队,不能抢在前面插别人的对,即不能嵌套。 STM32中指定优先级的寄存器为4位,其定义如下: 第0组:所有4位用于指定响应优先级 第1组:最高1位用于
[单片机]
STM32学习笔记(1):GPIO口的使用
实验平台清单如下: 开发板:奋斗STRIVE V3 核心芯片: STM32F103VET6 开发环境: RealView MDK-ARM Version:3.50 PC操作系统: Windows 7家庭普通版 仿真器: SEGGER J-Link 其中,STM32F103VET6芯片是基于ARM Cortex-M3内核的,具体技术参数请参考ST公司给出的芯片资料( http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00191185.pdf )。关于该芯片的其他资料,可以在 http://www.st.com/cn/
[单片机]
STM32窗口看门狗详解
本文将介绍窗口看门狗,并通过按键模拟触发程序死机、进而触发提前唤醒中断、并复位程序。 ①窗口看门狗介绍 ②STM32CUBEMX配置工程文件 ③代码实现 ①窗口看门狗介绍 窗口看门狗用来监测由于不可预知的因素或者不可预知的逻辑条件导致程序脱离正常运行序列的软件故障。 窗口看门狗介绍之工作原理框图: 窗口看门狗介绍之配置寄存器: 预分频器用于将RCC传来的PCLK1时钟进行分频,配置寄存器中第7位第8位用来存放预分频器的预分频值,第0位至第6位用于存放窗口看门狗的窗口值,当计数器的值大于窗口值时喂狗会触发复位、即只有计数器的值在0x40与窗口值之间时喂狗不会触发程序复位;所以窗口值需要大于0x40、小于0x7f,否则窗口没有
[单片机]
<font color='red'>STM32</font>窗口看门狗详解
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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