当前位置:网站首页>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
边栏推荐
- The median salary of TSMC's global employees is about 460000, and the CEO is about 8.99 million; Apple raised the price of iPhone in Japan; VIM 9.0 releases | geek headlines
- Global and Chinese market of oil analyzers 2022-2028: Research Report on technology, participants, trends, market size and share
- 数学分析_笔记_第5章:一元微分学
- 大厂面试总结大全
- 只是巧合?苹果iOS16的神秘技术竟然与中国企业5年前产品一致!
- [fluent] dart data type list set type (define set | initialize | generic usage | add elements after initialization | set generation function | set traversal)
- Routing mode: hash and history mode
- ROW_ NUMBER()、RANK()、DENSE_ Rank difference
- 618 deep resumption: Haier Zhijia's winning methodology
- Mathematical analysis_ Notes_ Chapter 5: univariate differential calculus
猜你喜欢

Foreign enterprise executives, continuous entrepreneurs, yoga and skiing masters, and a program life of continuous iteration and reconstruction

Remove the underline in router link

A week of short video platform 30W exposure, small magic push helps physical businesses turn losses into profits

七一献礼:易鲸捷 “百日会战”完美收官 贵阳银行数据库提前封板

只是巧合?苹果iOS16的神秘技术竟然与中国企业5年前产品一致!

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

Which software is good for machine vision?

Penetration tool - intranet permission maintenance -cobalt strike

Machine learning perceptron model

Set the background picture in the idea (ultra detailed)
随机推荐
LeetCode 2. 两数相加
Global and Chinese market of discharge machines 2022-2028: Research Report on technology, participants, trends, market size and share
unity Hub 登錄框變得很窄 無法登錄
Unity uses ugui to set a simple multi-level horizontal drop-down menu (no code required)
Typescript array out of order output
Kubernetes family container housekeeper pod online Q & A?
Yyds dry goods inventory hands-on teaching you to carry out the packaging and release of mofish Library (fishing Library)
做机器视觉哪个软件好?
618 reprise en profondeur: la méthode gagnante de la famille Haier Zhi
Global and Chinese markets for airport baggage claim conveyors 2022-2028: technology, participants, trends, market size and share Research Report
Penetration tool - intranet permission maintenance -cobalt strike
Data security industry series Salon (III) | data security industry standard system construction theme Salon
The median salary of TSMC's global employees is about 460000, and the CEO is about 8.99 million; Apple raised the price of iPhone in Japan; VIM 9.0 releases | geek headlines
大廠面試總結大全
Kubernetes three open interfaces first sight
mysql min() 求某条件下最小的值出现多个结果
PCL 点云镜像变换
Rock PI Development Notes (II): start with rock PI 4B plus (based on Ruixing micro rk3399) board and make system operation
Global and Chinese market of jacquard looms 2022-2028: Research Report on technology, participants, trends, market size and share
unity Hub 登录框变得很窄 无法登录