中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

開網站賣茶要怎么做一站式營銷推廣

開網站賣茶要怎么做,一站式營銷推廣,網站建設做什么科目,簡潔大氣網站模板定時器概念(常用于輸出PWM波形,驅動電機) 時間脈沖數時鐘周期; 這里的脈沖數6553665536,支持定時器級聯(lián),從而延長定時 定時器類型 基本定時器原理圖(UI:更新中斷, U:更新事件&#…

定時器概念(常用于輸出PWM波形,驅動電機)

在這里插入圖片描述

時間=脈沖數時鐘周期; 這里的脈沖數=6553665536,支持定時器級聯(lián),從而延長定時

定時器類型

在這里插入圖片描述

基本定時器原理圖(UI:更新中斷, U:更新事件,僅支持向上計時模式)

在這里插入圖片描述

(stm32主模式)可以通過映射U(事件)至到觸發(fā)器(TRGO)來控制DAC的輸出,這樣就不用CPU花費大量的中斷時間輸出DAC

通用定時器原理圖(支持向上/下計時模式,中央對齊計時模式)

中央對齊計時模式(計數器的值和重裝值相等時產生一次中斷,計數器值再減為零再產生一次中斷)

在這里插入圖片描述

高級定時器

在這里插入圖片描述

DTG(Dead Time Generate): 死區(qū)生成電路,用于防止直通

BKIN:剎車輸入

定時中斷基本結構

在這里插入圖片描述

預分頻器時序

在這里插入圖片描述

計數器時序圖

在這里插入圖片描述
在這里插入圖片描述
影子寄存器的作用:讓值的更改與更新事件保持同步,防止在運行途中更改造成錯誤
在這里插入圖片描述

MyClock.c

#include "stm32f10x.h"
extern uint16_t Num;
//定時器初始化
void Timer_Init(void){// Enables or disables the Low Speed APB (APB1) peripheral clock.(外部時鐘)RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//(內部時鐘)TIM_InternalClockConfig(TIM2);//基本定時器配置TIM_TimeBaseInitTypeDef BaseTI;BaseTI.TIM_ClockDivision = TIM_CKD_DIV1;BaseTI.TIM_CounterMode =   TIM_CounterMode_Up; //向上計數法BaseTI.TIM_Prescaler = 7200-1;   //PSC,計數器(PSC大,ARR小,則定時器頻率低,OV=C_PSC/PSC+1/ARR+1)BaseTI.TIM_Period = 1000-1;   //ARR,重定位值 ,(PSC小,ARR大,則定時器頻率高) BaseTI.TIM_RepetitionCounter = 0;    //Specifies the repetition counter value. Each time the RCR downcounterreaches zero, an update event is generated and counting restarts from the RCR valueTIM_TimeBaseInit(TIM2,&BaseTI);   //由于時鐘在初始化的時候,觸發(fā)了一次更新事件使預分頻器的值有效,所以要清除掉更新事件,避免后續(xù)計時器數值從一開始TIM_ClearFlag(TIM2,TIM_FLAG_Update);  //中斷配置,由更新事件觸發(fā)中斷TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//中斷控制器NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitTypeDef NI;NI.NVIC_IRQChannel = TIM2_IRQn;NI.NVIC_IRQChannelCmd = ENABLE;NI.NVIC_IRQChannelPreemptionPriority = 2;NI.NVIC_IRQChannelSubPriority = 1;  NVIC_Init(&NI);//啟動定時器TIM_Cmd(TIM2,ENABLE);
}
//對射式定時器初始化
void MappintTimer_Init(void){// Enables or disables the Low Speed APB (APB1) peripheral clock.(外部時鐘)RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);   //紅外射線引腳GPIO_InitTypeDef GI;GI.GPIO_Mode = GPIO_Mode_IPU;GI.GPIO_Pin = GPIO_Pin_0;GI.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GI);//(外部時鐘)TIM_ETRClockMode2Config(TIM2,TIM_ExtTRGPSC_OFF,TIM_ExtTRGPolarity_NonInverted,0x00); //時鐘模式,外部觸發(fā)計數器,外部觸發(fā)極性(這里是不反轉,低電平有效),濾波器(采樣n個點都相同,才輸出濾波器)//基本定時器配置TIM_TimeBaseInitTypeDef BaseTI;BaseTI.TIM_ClockDivision = TIM_CKD_DIV1;BaseTI.TIM_CounterMode =   TIM_CounterMode_Up; //向上計數法BaseTI.TIM_Prescaler = 1-1;   //PSC,計數器(PSC大,ARR小,則定時器頻率低,OV=C_PSC/PSC+1/ARR+1),這里從0~9BaseTI.TIM_Period = 10-1;   //ARR,重定位值 ,(PSC小,ARR大,則定時器頻率高),這里不需要分頻 BaseTI.TIM_RepetitionCounter = 0;    //Specifies the repetition counter value. Each time the RCR downcounterreaches zero, an update event is generated and counting restarts from the RCR valueTIM_TimeBaseInit(TIM2,&BaseTI);   //由于時鐘在初始化的時候,觸發(fā)了一次更新事件使預分頻器的值有效,所以要清除掉更新事件,避免后續(xù)計時器數值從一開始TIM_ClearFlag(TIM2,TIM_FLAG_Update);  //中斷配置,由更新事件觸發(fā)中斷TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//中斷控制器NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitTypeDef NI;NI.NVIC_IRQChannel = TIM2_IRQn;NI.NVIC_IRQChannelCmd = ENABLE;NI.NVIC_IRQChannelPreemptionPriority = 2;NI.NVIC_IRQChannelSubPriority = 1;  NVIC_Init(&NI);//啟動定時器TIM_Cmd(TIM2,ENABLE);
}
//時鐘中斷控制,這個函數可以定義在主函數外面,這樣就不用使用extern修飾變量
void TIM2_IRQHandler(void){if(TIM_GetITStatus(TIM2,TIM_IT_Update) == SET){Num++;TIM_ClearITPendingBit(TIM2,TIM_IT_Update);} 
}

PWM波形

PWM(Pulse Width Modulation)波形,即脈沖寬度調制波形,是一種通過調整一系列等幅脈沖的寬度來對輸出進行編碼和控制的技術。在PWM信號中,每個脈沖的幅度保持恒定,但是脈沖的持續(xù)時間(寬度)變化,從而改變脈沖的占空比,即高電平時間與整個脈沖周期的比例。這種調制方式使得PWM信號能夠等效地模擬出不同強度的模擬信號,常用于控制電機轉速、LED亮度調節(jié)、電源轉換等領域。
PWM波形的關鍵特性包括:
-脈沖序列:PWM波由一系列矩形波(方波)組成。
-固定周期:每個PWM周期的時間長度是固定的。
-可變寬度:每個脈沖的高電平時間(即“開啟時間”)可以改變,低電平時間相應調整以保持周期不變,這樣就改變了占空比。
-占空比:占空比是指一個周期內高電平時間與整個周期時間的比例,通常以百分比表示,用于控制輸出的有效功率或模擬信號的強度。
-等效模擬信號:通過調整占空比,PWM可以近似模擬連續(xù)的模擬信號,如正弦波,用于驅動如電機或LED等設備,實現平滑的控制效果。
在逆變電路和電源管理應用中,常用的PWM調制方法之一是SPWM(Sinusoidal PWM),它通過使脈沖寬度按照正弦波的形狀變化,使得輸出的PWM波形在一定意義上等效于期望的正弦波形,從而控制輸出電壓或電流的大小和頻率。
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

PWM基本結構

在這里插入圖片描述

PWM頻率

CK_PSC

在PWM(Pulse Width Modulation,脈沖寬度調制)控制中,CK_PSC通常指的是時鐘預分頻系數(Prescaler value for Clock)。這是微控制器(如STM32系列)中的定時器模塊中的一個配置參數,用于調整定時器的時鐘頻率。
具體來說,CK_PSC是定時器輸入時鐘(CK_INT,來自系統(tǒng)時鐘或者外部時鐘源)在進入定時器計數器之前經過的一個分頻器。通過設置不同的CK_PSC值,可以減慢定時器的計數速度,使得計數器能以較低的頻率進行計數,這對于生成各種不同頻率的PWM信號非常關鍵。預分頻的計算公式通常是 Timer Clock Frequency = (Input Clock Frequency) / (PSC + 1)。
例如,如果你有一個基于STM32的系統(tǒng),其系統(tǒng)時鐘頻率為72MHz,而你需要一個較慢的PWM頻率輸出,你可以通過設置合適的CK_PSC值來實現這一點。增加PSC值會降低到達計數器的時鐘頻率,從而允許更精細地控制PWM信號的頻率和占空比。
在編程時,通常會通過設置定時器的相關寄存器(如STM32中的TIMx_PSC寄存器)來配置CK_PSC的值,以滿足特定應用的需求。

CCR 和 ARR

自動重裝載寄存器(ARR)用于確定波形的頻率(即周期)、捕獲比較寄存器(CCRx)(用于確定占空比的)
PWM的工作過程如下:首先ARR寄存器里面的值確定了一個PWM周期(注意這個周期是在PWM系統(tǒng)初始化的時候寫入ARR寄存器的,寫入以后一般就不再改動了)。然后CCR寄存器里面的值是PWM工作過程中確定的,它可以為一個定值,也可以是一個變化的值。
在這里插入圖片描述

PWM分辨率

PWM分辨率是指在PWM一個周期內能夠實現的占空比調整的最小單位,它是衡量PWM信號精細程度的一個重要指標。PWM通過調整脈沖信號高電平時間的長短來模擬輸出不同的平均電壓值,而這個調整的細膩程度就是由分辨率決定的。
具體來說,PWM分辨率可以用比特數表示,常見的有8位、10位、12位等。一個8位的PWM控制器可以提供2^8=256個不同的占空比等級,這意味著在一個PWM周期內,高電平時間可以有256種不同的設置。相應地,10位分辨率則可以提供1024個不同的占空比等級,12位則有4096個等級,依此類推。分辨率越高,能夠實現的控制精度就越高,輸出的模擬信號就越接近真實連續(xù)的模擬信號。
PWM分辨率的計算也可以關聯(lián)到具體的時鐘頻率上,比如一個PWM的時鐘頻率確定時,提高分辨率會導致每個脈沖寬度的可調步進減小,從而使得控制更為精確。反之,分辨率較低意味著調整的步長較大,占空比的變化相對粗糙。

呼吸燈電路圖

在這里插入圖片描述

注意事項

在這里插入圖片描述

占空比為10%的PWM波形(示波器顯示)

在這里插入圖片描述

呼吸燈核心代碼

//主函數
#include "stm32f10x.h"                  // Device header
#include "MyDelay.h"   //自定義延時函數
#include "Delay.h"     //官方延遲函數
#include "Button.h"   //按鍵Led驅動
#include "stdio.h"
#include "PWM.h"
#include "OLED.h"int main(void){//環(huán)境配置OLED_Init();PWM_Init();while(1){for(int i=1;i<=100;i+=2){OLED_ShowNum(1,1,666,3);PWM_SetCompare1(i);Delay_ms(20);}for(int i=100;i>=1;i-=2){OLED_ShowNum(1,1,666,3);PWM_SetCompare1(i);Delay_ms(20);}       }return 0;
}//PWM.h
#ifndef PWM_H
#define PWM_H
//初始化PWM
void PWM_Init(void);
//用于動態(tài)改變CCR,調節(jié)LED燈的亮度,PWM使用的PA0端口
void PWM_SetCompare1(uint16_t Compare); 
#endif//PWM.c
#include "stm32f10x.h"                  // Device header
//初始化PWM
void PWM_Init(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);   //時鐘中斷RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);  //為呼吸燈指定引腳PA0GPIO_InitTypeDef GI;GI.GPIO_Mode = GPIO_Mode_AF_PP;   //定時器(外設)控制引腳,要用復用推挽輸出GI.GPIO_Pin = GPIO_Pin_0;GI.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GI);TIM_InternalClockConfig(TIM2);     //內部時鐘TIM_TimeBaseInitTypeDef TI;     //時鐘中斷配置TI.TIM_ClockDivision = TIM_CKD_DIV2 ;TI.TIM_CounterMode = TIM_CounterMode_Up;TI.TIM_Period = 100-1;    // ARRTI.TIM_Prescaler = 720-1;      // PSC ,CK_PSC=72MHZTI.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM2,&TI);TIM_Cmd(TIM2,ENABLE);  //時鐘中斷使能//時鐘中斷的輸出比較模塊定義: PWM波形,頻率1KHZ,占空比50%,分辨率為 1%,TIM_OCInitTypeDef OCI;TIM_OCStructInit(&OCI); //先初始化輸出比較模塊,后續(xù)修改某個屬性OCI.TIM_OCMode = TIM_OCMode_PWM1;OCI.TIM_OCPolarity = TIM_OCPolarity_High;   //極性,高電平有效電平OCI.TIM_OutputState = ENABLE;OCI.TIM_Pulse = 0;    //CCR捕獲寄存器,可以通過改變CCR的值,調制PWM波形的占空比,從而改變LED燈的亮度    TIM_OC1Init(TIM2,&OCI);  //pwm波形初始化 
}//用于動態(tài)改變CCR,調節(jié)LED燈的亮度,PWM使用的PA0端口
void PWM_SetCompare1(uint16_t Compare){TIM_SetCompare1(TIM2,Compare); //該函數用于設置CRR的值}//重映射端口PA15
#include "stm32f10x.h"                  // Device header//初始化PWM
void PWM_Init(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);   //時鐘中斷RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);  //為呼吸燈指定引腳PA0//法二:為了提高引腳使用率,重映射端口,打開AFIO,重映射引腳,解除調試端口RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //禁用JTAG調試,這里用的是ST-LinkGPIO_InitTypeDef GI;GI.GPIO_Mode = GPIO_Mode_AF_PP;   //定時器(外設)控制引腳,要用復用推挽輸出GI.GPIO_Pin = GPIO_Pin_15;GI.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GI);TIM_InternalClockConfig(TIM2);     //內部時鐘TIM_TimeBaseInitTypeDef TI;     //時鐘中斷配置TI.TIM_ClockDivision = TIM_CKD_DIV2 ;TI.TIM_CounterMode = TIM_CounterMode_Up;TI.TIM_Period = 100-1;    // ARRTI.TIM_Prescaler = 720-1;      // PSC ,CK_PSC=72MHZTI.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM2,&TI);TIM_Cmd(TIM2,ENABLE);  //時鐘中斷使能//時鐘中斷的輸出比較模塊定義: PWM波形,頻率1KHZ,占空比50%,分辨率為 1%,TIM_OCInitTypeDef OCI;TIM_OCStructInit(&OCI); //先初始化輸出比較模塊,后續(xù)修改某個屬性OCI.TIM_OCMode = TIM_OCMode_PWM1;OCI.TIM_OCPolarity = TIM_OCPolarity_High;   //極性,高電平有效電平OCI.TIM_OutputState = ENABLE;OCI.TIM_Pulse = 0;    //CCR捕獲寄存器,可以通過改變CCR的值,調制PWM波形的占空比,從而改變LED燈的亮度    TIM_OC1Init(TIM2,&OCI);  //pwm波形初始化 
}//用于動態(tài)改變CCR,調節(jié)LED燈的亮度,PWM使用的PA0端口
void PWM_SetCompare1(uint16_t Compare){TIM_SetCompare1(TIM2,Compare); //該函數用于設置CRR的值}

舵機

在這里插入圖片描述
在這里插入圖片描述

按鍵控制舵機旋轉

#include "stm32f10x.h"                  // Device header
#include "MyDelay.h"   //自定義延時函數
#include "Delay.h"     //官方延遲函數
#include "Button.h"   //按鍵Led驅動
#include "stdio.h"
#include "PWM.h"
#include "OLED.h"
#include "Servos.h"
float Angle;
int KeyNum;
int main(void){//環(huán)境配置OLED_Init();Servos_PWM_Init();Button_Init();//顯示角度OLED_ShowString(1,1,"Angle:");while(1){KeyNum = Key_GetNum();if(KeyNum == 1){Angle += 25;if(Angle>=180) Angle = 180;OLED_ShowNum(1,7,Angle,5);Servos_SetAngle(Angle);} if(Angle>=180){Angle = 0; OLED_ShowNum(1,7,Angle,5);Servos_SetAngle(0);}    }return 0;
}#ifndef Servos_h
#define Servos_h
//舵機PWM波形初始化
void Servos_PWM_Init(void);
//動態(tài)改變PWM通道2的波形
void PWM_SetCompare2(uint16_t Compare);
//設置舵機旋轉角度
void Servos_SetAngle(float Angle);
#endif#include "stm32f10x.h"
//舵機PWM波形初始化
void Servos_PWM_Init(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);   //時鐘中斷RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);  //為呼吸燈指定引腳PA0GPIO_InitTypeDef GI;GI.GPIO_Mode = GPIO_Mode_AF_PP;   //定時器(外設)控制引腳,要用復用推挽輸出GI.GPIO_Pin = GPIO_Pin_1;GI.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GI);TIM_InternalClockConfig(TIM2);     //內部時鐘TIM_TimeBaseInitTypeDef TI;     //時鐘中斷配置TI.TIM_ClockDivision = TIM_CKD_DIV2;TI.TIM_CounterMode = TIM_CounterMode_Up;TI.TIM_Period = 20000;    // ARRTI.TIM_Prescaler = 72;      // PSC ,CK_PSC=72MHZTI.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM2,&TI);TIM_Cmd(TIM2,ENABLE);  //時鐘中斷使能//時鐘中斷的輸出比較模塊定義: PWM波形,舵機要求時鐘20ms,頻率50HZ,占空比動態(tài)變化,分辨率動態(tài)變化,TIM_OCInitTypeDef OCI;TIM_OCStructInit(&OCI); //先初始化輸出比較模塊,后續(xù)修改某個屬性OCI.TIM_OCMode = TIM_OCMode_PWM1;OCI.TIM_OCPolarity = TIM_OCPolarity_High;   //極性,高電平有效電平OCI.TIM_OutputState = ENABLE;OCI.TIM_Pulse = 0;    //調制PWM波形的占空比,從而控制舵機,舵機CCR取值范圍:500 ~ 2500    TIM_OC1Init(TIM2,&OCI);  //pwm通道1初始化 TIM_OC2Init(TIM2,&OCI);  //pwm通道2}//動態(tài)改變PWM通道2的CCR
void PWM_SetCompare2(uint16_t Compare){TIM_SetCompare2(TIM2,Compare);
}//設置舵機旋轉角度
void Servos_SetAngle(float Angle){float sum = 500 + (Angle/180*2000);   //CCR:500~2500 與 角度:0~180 計算得出PWM_SetCompare2(sum);
}

直流電機

   在這里插入圖片描述
在這里插入圖片描述

//電機驅動代碼
#include "stm32f10x.h"                  // Device header
#include "MyDelay.h"   //自定義延時函數
#include "Delay.h"     //官方延遲函數
#include "Button.h"   //按鍵Led驅動
#include "stdio.h"
#include "OLED.h"
#include "Servos.h"
#include "DCmotors.h"int Speed,KeyNum;
int main(void){//環(huán)境配置OLED_Init();DCmotors_Init();Button_Init();Motor_SetSpeed(-50);OLED_ShowString(1,1,"Circle Speed:");while(1){KeyNum = Key_GetNum();				//獲取按鍵鍵碼if (KeyNum == 1)					//按鍵1按下{Speed += 20;					//速度變量自增20if (Speed > 100)				//速度變量超過100后{Speed = -100;				//速度變量變?yōu)?100//此操作會讓電機旋轉方向突然改變,可能會因供電不足而導致單片機復位//若出現了此現象,則應避免使用這樣的操作}}Motor_SetSpeed(Speed);				//設置直流電機的速度為速度變量OLED_ShowSignedNum(2, 1, Speed, 3);	//OLED顯示速度變量}return 0;
}#ifndef DCmotors_h
#define DCmotors_h
//直流電機驅動
void DCmotors_Init(void);
//設置電機旋轉速度以及旋轉方向(電流方向決定旋轉方向)
void Motor_SetSpeed(int8_t Speed);
#endif#include "stm32f10x.h"
#include "OLED.h"
#include "PWM.h"
//直流電機驅動
void DCmotors_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);  GPIO_InitTypeDef GI;GI.GPIO_Mode = GPIO_Mode_Out_PP;   //要用推挽輸出(不由片上外設控制,無需復用推挽輸出)GI.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;GI.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GI);PWM_Init();  //PWM波形初始化
}
//設置電機旋轉速度以及旋轉方向(電流方向決定旋轉方向)
void Motor_SetSpeed(int8_t Speed){if (Speed >= 0)							//如果設置正轉的速度值{GPIO_SetBits(GPIOA, GPIO_Pin_4);	//PA4置高電平GPIO_ResetBits(GPIOA, GPIO_Pin_5);	//PA5置低電平,設置方向為正轉PWM_SetCompare3(Speed);				//PWM設置為速度值}else									//否則,即設置反轉的速度值{GPIO_ResetBits(GPIOA, GPIO_Pin_4);	//PA4置低電平GPIO_SetBits(GPIOA, GPIO_Pin_5);	//PA5置高電平,設置方向為反轉PWM_SetCompare3(-Speed);			//PWM設置為負的速度值,因為此時速度值為負數,而PWM只能給正數}
}//封裝好的PWM模塊
#ifndef PWM_H
#define PWM_H
//初始化PWM
void PWM_Init(void);
//用于動態(tài)改變CCR,調節(jié)LED燈的亮度,PWM使用的PA0端口
void PWM_SetCompare3(uint16_t Compare); 
#endif#include "stm32f10x.h"                  // Device header
//初始化PWM
void PWM_Init(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);   //時鐘中斷RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);  //為呼吸燈指定引腳PA0//法二:為了提高引腳使用率,重映射端口,打開AFIO,重映射引腳,解除調試端口
//  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
//  GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,ENABLE);
//  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //禁用JTAG調試,這里用的是ST-LinkGPIO_InitTypeDef GI;GI.GPIO_Mode = GPIO_Mode_AF_PP;   //(外設)控制引腳,PA2要用復用推挽輸出GI.GPIO_Pin = GPIO_Pin_2;GI.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GI);TIM_InternalClockConfig(TIM2);     //內部時鐘TIM_TimeBaseInitTypeDef TI;     //時鐘中斷配置TI.TIM_ClockDivision = TIM_CKD_DIV2 ;TI.TIM_CounterMode = TIM_CounterMode_Up;TI.TIM_Period = 100-1;    // ARRTI.TIM_Prescaler = 36-1;      // PSC ,CK_PSC=72MHZTI.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM2,&TI);TIM_Cmd(TIM2,ENABLE);  //時鐘中斷使能//時鐘中斷的輸出比較模塊定義: PWM波形,頻率1KHZ,占空比50%,分辨率為 1%,TIM_OCInitTypeDef OCI;TIM_OCStructInit(&OCI); //先初始化輸出比較模塊,后續(xù)修改某個屬性OCI.TIM_OCMode = TIM_OCMode_PWM1;OCI.TIM_OCPolarity = TIM_OCPolarity_High;   //極性,高電平有效電平OCI.TIM_OutputState = ENABLE;OCI.TIM_Pulse = 0;    //CCR捕獲寄存器,可以通過改變CCR的值,調制PWM波形的占空比,從而改變LED燈的亮度    TIM_OC3Init(TIM2,&OCI);  //pwm波形初始化 }//用于動態(tài)改變CCR,調節(jié)LED燈的亮度,PWM使用的PA0端口
void PWM_SetCompare3(uint16_t Compare){TIM_SetCompare3(TIM2,Compare); //該函數用于設置CRR的值}
http://www.risenshineclean.com/news/2499.html

相關文章:

  • 什么網站做簡歷最好app推廣接單網
  • 創(chuàng)新的沈陽網站建設百度指數的功能
  • 最新新聞國際新聞seo標題優(yōu)化關鍵詞怎么選
  • 無錫中小企業(yè)網站制作推廣方式有哪些?
  • 深圳商務網站建設怎么建立公司網站
  • 徐州 網站建設百度一下 你就知道官網
  • 網站管理模式aso推廣公司
  • 總做總結 網站維護的收獲站長之家網站查詢
  • 甘肅企業(yè)模板建站信息seo專員是干什么的
  • 營銷式網站制作鄭州網站建設公司
  • 免費提供網站建設免費二級域名分發(fā)平臺
  • 云南做網站多少錢軟文營銷文案
  • 用帝國cms系統(tǒng)怎么做網站b2b是什么意思
  • 有沒有專門做化妝品小樣的網站百度新聞網頁
  • 中國新聞社級別桌子seo關鍵詞
  • 鄭州購物網站建設寫軟文怎么接單子
  • 網站沒有備案會怎么樣百度最新財報
  • 網站建設800元全包seo優(yōu)化排名工具
  • 網站建設與品牌策劃方案報價國際形勢最新消息
  • 深圳專業(yè)o2o網站設計公司長春seo整站優(yōu)化
  • 福建城鄉(xiāng)建設部網站首頁競價培訓班
  • 紹興公司企業(yè)名單武漢seo優(yōu)化代理
  • 做汽車行業(yè)必須注冊際零件網站必應搜索國際版
  • 邢臺商城類網站建設企業(yè)qq郵箱
  • 百度指數的網站谷歌搜索入口365
  • 網站制作的公司哪個好南寧seo營銷推廣
  • 長沙哪個網站建設最好重慶可靠的關鍵詞優(yōu)化研發(fā)
  • 網站開發(fā)常用的谷歌插件女教師遭網課入侵視頻大全播放
  • 高密市政府建設局網站臺州網站制作維護
  • 汕頭市門戶網站建設屬性詞 關鍵詞 核心詞