STM32L151 PWM输出示例
来源:互联网 发布:网络语苏是什么意思 编辑:程序博客网 时间:2024/05/17 01:39
最近做个项目,需要用PWM控制4线风扇的速度,调试完后顺便将其记录下来.
typedef struct {u16 pwm_change_flag;u16 pwm_value;}Pwm_Fan_t;Pwm_Fan_t Pwm_Fan;void Pwm_Param_Init(void){Pwm_Fan.pwm_change_flag=0;Pwm_Fan.pwm_value=80;}//PD14->TIM4_CH3void PWM_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; // 复用推挽输出 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); }/**************************************************************** 2017年8月14日14:37:57:cpu的风扇是使用25Khz pwm来调制的 ***************************************************************/ void TIM4_Config(u16 pwm){ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; /* PWM信号电平跳变值 */ u16 CCR3; if(pwm>160-1)pwm=160-1;CCR3=pwm;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_TIM4); //对于L系列的,这句千万别漏掉了TIM_Cmd(TIM4, DISABLE); /* Time base configuration */ TIM_TimeBaseStructure.TIM_Period =160 - 1;//0xEA5F; TIM_TimeBaseStructure.TIM_Prescaler = 8-1; //设置预分频:预分频=2,即为72/3=24MHz TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分频系数:不分频 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数溢出模式 TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); /* PWM1 Mode configuration: Channel3 */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //配置为PWM模式1 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = CCR3; //设置跳变值,当计数器计数到这个值时,电平发生跳变 TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_Low; //当定时器计数值小于CCR1时为低电平 TIM_OC3Init(TIM4, &TIM_OCInitStructure); //使能通道3 TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM4, ENABLE); //使能TIM4重载寄存器ARR /* TIM4 enable counter */ TIM_Cmd(TIM4, ENABLE); //使能TIM4 }
阅读全文
1 0
- STM32L151 PWM输出示例
- PWM输出
- PWM输出
- STC - PWM输出汇总
- s3c2440的pwm输出
- 通用定时器PWM输出
- 单片机 PWM输出 c
- MSP430_定时器输出PWM
- cc2530火警pwm输出
- 5、PWM输出实验
- stm32 PWM输出学习
- PWM输出实验
- STM32定时器PWM输出
- stm32之PWM输出
- px4 pwm输出
- stm32 PWM输出
- STM32_TIM输出PWM波形
- PWM波形输出
- UVA
- 微信公众号开发注意事项
- ADTF(Assist Automotive Data and Time-Triggered Framework)介绍
- JAVA之初识springMVC框架
- c++中不知道的事儿
- STM32L151 PWM输出示例
- 几年级学奥数最好?奥数金牌教练建议3年级开始学...
- 补提交卡 HihoCoder
- 机器学习实战_初识朴素贝叶斯算法_理解其python代码(一)
- PAT题解——1051. Pop Sequence (25)
- 度度熊保护村庄 HDU
- Mybatis的SqlSession
- 关于spring boot配置maven文件配置
- 杭电1024Max Sum Plus Plus动态规划