当前位置:网站首页>PWM breathing lamp
PWM breathing lamp
2022-07-02 16:43:00 【Let everything burn】
Mission :
- Learn timer output PWM, Realization PWM Breathing lights
- understand PWM Principle of breathing lamp
And pwm Knowledge points about controlling breathing lights
The previous one used the delay function to control the steering gear , The delay function will occupy the MCU cup, inefficiency
pwm Pulse width modulator ( Duty cycle ): Control the high and low level
Use the digital output of microprocessor to control the analog circuit
High level LED Lighten up , Low level LED Extinguish
The length of the high level determines LED The brightness of
There should be a complete cycle , The length of high and low levels changes constantly , Cycle length ( frequency ) unchanged , A cycle appears repeatedly
pwm May by stm32 Timer generation in , Advanced timer TIM1, Ordinary timer TIM2,TIM3,TIM4




ccrx Indicates the change position of high and low levels in a cycle
ccrx Adjust the high level up to reduce the column , Adjust the high-level ratio downward to increase 

It can make LED1 or LED2 bright , But two cannot light at the same time
Complete code :
main.c
int main(void)
{
u16 t = 500;
u8 dir = 1;
//delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//uart_init(115200);
LED_Init();
TIM3_PWM_Init(59999,23);
while(1)
{
delay_ms(10);
if(dir)t=t+400;
else t=t-400;
if(t>60000)dir = 0;
if(t==500)dir = 1;
// TIM_SetCompare3(TIM3,t);
TIM_SetCompare4(TIM3,t);
pwm.c
void TIM3_PWM_Init(u16 arr,u16 psc){
//TIM3 PWM initialization arr Reload value psc The prescaled coefficients
GPIO_InitTypeDef GPIO_InitStrue;
TIM_OCInitTypeDef TIM_OCInitStrue;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStrue;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);// Can make TIM3 And the related GPIO The clock
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);// Can make GPIOB The clock (LED stay PB0 Pin )
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);// Can make AFIO The clock ( Timer 3 passageway 3 Need to remap to BP5 Pin )
// GPIO_InitStrue.GPIO_Pin=GPIO_Pin_0; // TIM_CH3
GPIO_InitStrue.GPIO_Pin=GPIO_Pin_1; // TIM_CH4
GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP; // Reuse push pull
GPIO_InitStrue.GPIO_Speed=GPIO_Speed_50MHz; // Set the maximum output speed
GPIO_Init(GPIOB,&GPIO_InitStrue); //GPIO Port initialization settings
// GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE); // mapping , Remapping is only used for 64、100、144 Single chip microcomputer foot
// When there is no remapping ,TIM3 The four channels of CH1,CH2,CH3,CH4 They correspond to each other PA6,PA7,PB0,PB1
// When partially remapped ,TIM3 The four channels of CH1,CH2,CH3,CH4 They correspond to each other PB4,PB5,PB0,PB1 (GPIO_PartialRemap_TIM3)
// When completely remapped ,TIM3 The four channels of CH1,CH2,CH3,CH4 They correspond to each other PC6,PC7,PC8,PC9 (GPIO_FullRemap_TIM3)
TIM_TimeBaseInitStrue.TIM_Period=arr; // Set auto reload load value
TIM_TimeBaseInitStrue.TIM_Prescaler=psc; // The prescaled coefficients
TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up; // The counter overflows up
TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CKD_DIV1; // The division factor of the clock , It plays a little delay role , General set to TIM_CKD_DIV1
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStrue); //TIM3 Initialize settings ( Set up PWM The cycle of )
TIM_OCInitStrue.TIM_OCMode=TIM_OCMode_PWM1; // PWM Pattern 1:CNT < CCR Output effective level at
//TIM_OCInitStrue.TIM_OCMode=TIM_OCMode_PWM2;
TIM_OCInitStrue.TIM_OCPolarity=TIM_OCPolarity_High;// Set polarity - The effective level is : High level
TIM_OCInitStrue.TIM_OutputState=TIM_OutputState_Enable;// Output enable
//
//TIM_OC3Init(TIM3,&TIM_OCInitStrue); //TIM3 The passage of 3 PWM Mode setting
//
// TIM_OC3PreloadConfig(TIM3,TIM_OCPreload_Enable);
TIM_OC4Init(TIM3,&TIM_OCInitStrue); //TIM3 The passage of 4 PWM Mode setting
TIM_OC4PreloadConfig(TIM3,TIM_OCPreload_Enable); // Enable preload register
TIM_Cmd(TIM3,ENABLE); // Can make TIM3
}
Be careful :
PWM clock frequency=72000000/(59999+1)*(23+1) = 50HZ (20ms),
Set upAuto load values60000,prescalecoefficient 24
边栏推荐
- 触发器:Mysql实现一张表添加或删除一条数据,另一张表同时添加
- Library management system (Shandong Agricultural University Curriculum Design)
- pwm呼吸灯
- Seal Library - installation and introduction
- Practice of traffic recording and playback in vivo
- Multi task prompt learning: how to train a large language model?
- 数学分析_笔记_第5章:一元微分学
- Yyds dry goods inventory has not revealed the artifact? Valentine's Day is coming. Please send her a special gift~
- Global and Chinese markets for airport baggage claim conveyors 2022-2028: technology, participants, trends, market size and share Research Report
- Mathematical analysis_ Notes_ Chapter 5: univariate differential calculus
猜你喜欢

台积电全球员工薪酬中位数约46万,CEO约899万;苹果上调日本的 iPhone 售价 ;Vim 9.0 发布|极客头条...

数据安全产业系列沙龙(三)| 数据安全产业标准体系建设主题沙龙

sql解决连续登录问题变形-节假日过滤

Yyds dry goods inventory student attendance system based on QT design

关于mysql安装的一些问题

曆史上的今天:支付寶推出條碼支付;分時系統之父誕生;世界上第一支電視廣告...

Remove the underline in router link

Yyds dry goods inventory has not revealed the artifact? Valentine's Day is coming. Please send her a special gift~

Exploration and practice of integration of streaming and wholesale in jd.com

Bone conduction non ear Bluetooth headset brand, bone conduction Bluetooth headset brand recommendation
随机推荐
How to choose the right kubernetes storage plug-in? (09)
Interview summary of large factories
Yyds dry goods inventory student attendance system based on QT design
Kubernetes family container housekeeper pod online Q & A?
Kubernetes three open interfaces first sight
Some problems about MySQL installation
Yyds dry goods inventory # look up at the sky | talk about the way and principle of capturing packets on the mobile terminal and how to prevent mitm
What is normal distribution? What is the 28 law?
Privacy computing technology innovation and industry practice seminar: Learning
TCP congestion control details | 2 background
Unity使用UGUI设置一个简单多级水平方向下拉菜单(不需要代码)
618深度複盤:海爾智家的制勝方法論
False summer vacation
LeetCode 1. Sum of two numbers
2022 the latest and most detailed will successfully set the background image in vscade and solve unsupported problems at the same time
流批一体在京东的探索与实践
AcWing 300. Task arrangement
Global and Chinese market of switching valves 2022-2028: Research Report on technology, participants, trends, market size and share
Rock PI Development Notes (II): start with rock PI 4B plus (based on Ruixing micro rk3399) board and make system operation
SSM整合-异常处理器及项目异常处理方案