標(biāo)題:
stm32怎樣增加兩個(gè)按鍵控制PWM占空比的增與減實(shí)現(xiàn)LED亮度調(diào)節(jié)?
[打印本頁(yè)]
作者:
單片機(jī)小白7
時(shí)間:
2021-12-2 21:45
標(biāo)題:
stm32怎樣增加兩個(gè)按鍵控制PWM占空比的增與減實(shí)現(xiàn)LED亮度調(diào)節(jié)?
在利用定時(shí)器實(shí)現(xiàn)
PWM
輸出,控制
LED
漸變的情況下,怎樣增加
兩個(gè)按鍵控制
PWM
占空比的增與減
實(shí)現(xiàn)
LED
亮度調(diào)節(jié)?用stm32f103
作者:
咕咕
時(shí)間:
2021-12-3 11:00
通過(guò)改變計(jì)數(shù)值
作者:
咕咕
時(shí)間:
2021-12-3 11:03
TIM_DeInit(TIM1); /*TIM1時(shí)鐘配置*/ TIM_TimeBaseStructure.TIM_Prescaler = 72; //預(yù)分頻(時(shí)鐘分頻)72M/72=1000K TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上計(jì)數(shù) TIM_TimeBaseStructure.TIM_Period = 2000; //裝載值 1000k/2000=500hz TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0; TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure); /* Channel 1 Configuration in PWM mode */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //PWM模式2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //正向通道有效 TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;//反向通道無(wú)效 TIM_OCInitStructure.TIM_Pulse = 300; //占空時(shí)間 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //輸出極性 TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High; //互補(bǔ)端的極性 TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; TIM_OC1Init(TIM1,&TIM_OCInitStructure); //通道1
作者:
咕咕
時(shí)間:
2021-12-3 11:03
TIM_DeInit(TIM1); /*TIM1時(shí)鐘配置*/ TIM_TimeBaseStructure.TIM_Prescaler = 72; //預(yù)分頻(時(shí)鐘分頻)72M/72=1000K TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上計(jì)數(shù) TIM_TimeBaseStructure.TIM_Period = 2000; //裝載值 1000k/2000=500hz TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0; TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure); /* Channel 1 Configuration in PWM mode */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //PWM模式2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //正向通道有效 TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;//反向通道無(wú)效 TIM_OCInitStructure.TIM_Pulse = 300; //占空時(shí)間 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //輸出極性 TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High; //互補(bǔ)端的極性 TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; TIM_OC1Init(TIM1,&TIM_OCInitStructure); //通道1
作者:
咕咕
時(shí)間:
2021-12-3 11:03
TIM_DeInit(TIM1);
/*TIM1時(shí)鐘配置*/
TIM_TimeBaseStructure.TIM_Prescaler = 72; //預(yù)分頻(時(shí)鐘分頻)72M/72=1000K
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上計(jì)數(shù)
TIM_TimeBaseStructure.TIM_Period = 2000; //裝載值 1000k/2000=500hz
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);
/* Channel 1 Configuration in PWM mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //PWM模式2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //正向通道有效
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;//反向通道無(wú)效
TIM_OCInitStructure.TIM_Pulse = 300; //占空時(shí)間
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //輸出極性
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High; //互補(bǔ)端的極性
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
TIM_OC1Init(TIM1,&TIM_OCInitStructure); //通道1
按鍵改變300作為變量 TIM_OCInitStructure.TIM_Pulse = 300; //占空時(shí)間
作者:
wspytu
時(shí)間:
2021-12-3 14:02
感覺(jué)題目沒(méi)有講明白?LED漸變時(shí),再增加兩個(gè)按鍵,再原來(lái)基礎(chǔ)上再增加或降低亮度?調(diào)整占空比和頻率
作者:
wangdanan
時(shí)間:
2021-12-3 14:57
通過(guò)兩個(gè)按鍵直接調(diào)節(jié)定時(shí)器大小的值即可
作者:
378601462
時(shí)間:
2021-12-3 20:03
可以在按鍵函數(shù)加上 TIM_SetCompare1(TIM3,i); 這個(gè)函數(shù),這個(gè)可以改變PWM的占空比 TM3是對(duì)應(yīng)定時(shí)器,i 是你想要修改的值,,要小于定時(shí)器的定時(shí)計(jì)數(shù)值
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1