資源簡介
該資源是基于STM32做的移相PWM控制,適用于半橋電路和全橋電路,在STM32中使用高級定時器1和8,采用一個定時器對另一個定時器使能的方式,產生移相角,在此電路中設置移相角為180度,其他場合,移相角可調,并采用PI閉環控制,有電流和電壓環可供選擇。

代碼片段和文件信息
#include?“adc.h“
#include?“delay.h“
void??Adc_Init(void)
{????
//先初始化IO口
? RCC->APB2ENR|=1<<4;????//使能PORTC口時鐘?
GPIOC->CRL&=0XFFFF0FFF;//PC3?anolog輸入
GPIOC->CRL&=0XFFF0FFFF;//PC4?anolog輸入
//通道13/14設置 ?
RCC->APB2ENR|=1<<9;????//ADC1時鐘使能 ??
RCC->APB2RSTR|=1<<9;???//ADC1復位
RCC->APB2RSTR&=~(1<<9);//復位結束 ????
RCC->CFGR&=~(3<<14);???//分頻因子清零
//SYSCLK/DIV2=12M?ADC時鐘設置為12MADC最大時鐘不能超過14M!
//否則將導致ADC準確度下降!?
RCC->CFGR|=2<<14;??????//APB2?6分頻后作為ADC時鐘??72M/6?=?12M?? ?
ADC1->CR1&=0XF0FFFF;???//工作模式清零
ADC1->CR1|=0<<16;??????//獨立工作模式??
ADC1->CR1&=~(1<<8);????//非掃描模式 ??
ADC1->CR2&=~(1<<1);????//單次轉換模式
ADC1->CR2&=~(7<<17); ?//軟件控制轉換清零
ADC1->CR2|=7<<17; ?????//軟件控制轉換??
ADC1->CR2|=1<<20;??????//使用用外部觸發(SWSTART)!!! 必須使用一個事件來觸發
ADC1->CR2&=~(1<<11);???//右對齊 ?
ADC1->SQR1&=~(0XF<<20);//規則通道序列長度清零
ADC1->SQR1|=0<<20;?????//1個轉換在規則序列中?也就是轉換規則序列1? ???
//設置通道1314的采樣時間
ADC1->SMPR1&=~(7<<9);??//通道13采樣時間清空 ??
? ADC1->SMPR1|=7<<9;?????//通道13??239.5周期提高采樣時間可以提高精確度 ?
ADC1->SMPR1&=~(7<<12);??//通道14采樣時間清空 ??
? ADC1->SMPR1|=7<<12;?????//通道14??239.5周期提高采樣時間可以提高精確度 ?
ADC1->CR2|=1<<0; ???//開啟AD轉換器 ?
ADC1->CR2|=1<<3;???????//使能復位校準??
while(ADC1->CR2&1<<3);?//等待校準結束? ?
????//該位由軟件設置并由硬件清除。在校準寄存器被初始化后該位將被清除。? ?
ADC1->CR2|=1<<2;????????//開啟AD校準 ???
while(ADC1->CR2&1<<2);??//等待校準結束
//該位由軟件設置以開始校準,并在校準結束時由硬件清除??
} ??
//獲得ADC值
//ch:通道值?0~16
//返回值:轉換結果
u16?Get_Adc(u8?ch)???
{
//設置轉換序列 ?? ?
ADC1->SQR3&=0XFFFFFFE0;//規則序列1中的通道清零
ADC1->SQR3|=ch; ?? //規則序列1?通道ch ????
ADC1->CR2|=1<<22;???????//啟動規則轉換通道?
while(!(ADC1->SR&1<<1));//等待轉換結束 ? ???
return?ADC1->DR; //返回adc值
}
//獲取通道ch的轉換值,取times次然后平均?
//ch:通道編號
//times:獲取次數
//返回值:通道ch的times次轉換結果平均值
u16?Get_Adc_Average(u8?chu8?times)
{
u32?temp_val=0;
u8?t;
for(t=0;t {
temp_val+=Get_Adc(ch);
// delay_us(1);
}
return?temp_val/times;
}?
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????I.A....??????2307??2017-11-05?22:00??HALF_bridge\Control_Demo\HARDWARE\ADC\adc.c
????I.A....???????814??2017-11-07?19:57??HALF_bridge\Control_Demo\HARDWARE\ADC\adc.h
????I.A....??????1015??2017-11-06?22:14??HALF_bridge\Control_Demo\HARDWARE\CONTROL\control.c
????I.A....???????690??2017-11-06?16:52??HALF_bridge\Control_Demo\HARDWARE\CONTROL\control.h
????I.A....??????1180??2017-11-18?19:40??HALF_bridge\Control_Demo\HARDWARE\DAC\dac.c
????I.A....???????647??2017-11-18?19:39??HALF_bridge\Control_Demo\HARDWARE\DAC\dac.h
????I.A....??????1308??2017-11-06?22:14??HALF_bridge\Control_Demo\HARDWARE\EXTI\exti.c
????I.A....???????628??2011-01-12?20:51??HALF_bridge\Control_Demo\HARDWARE\EXTI\exti.h
????I.A....??????1974??2018-12-03?16:24??HALF_bridge\Control_Demo\HARDWARE\KEY\key.c
????I.A....???????836??2018-12-03?15:47??HALF_bridge\Control_Demo\HARDWARE\KEY\key.h
????I.A....???????910??2018-12-03?15:30??HALF_bridge\Control_Demo\HARDWARE\LED\led.c
????I.A....???????288??2018-12-03?15:31??HALF_bridge\Control_Demo\HARDWARE\LED\led.h
????I.A....??????7888??2018-12-04?16:42??HALF_bridge\Control_Demo\HARDWARE\TIMER\timer.c
????I.A....???????941??2018-12-04?08:45??HALF_bridge\Control_Demo\HARDWARE\TIMER\timer.h
????I.A....??????1637??2017-11-06?22:14??HALF_bridge\Control_Demo\HARDWARE\WDG\wdg.c
????I.A....???????756??2011-01-12?20:56??HALF_bridge\Control_Demo\HARDWARE\WDG\wdg.h
????I.A....???????399??2011-04-23?10:24??HALF_bridge\Control_Demo\keilkilll.bat
????I.A....???????500??2012-07-19?22:10??HALF_bridge\Control_Demo\README.TXT
????I.A....??????2067??2013-04-03?12:14??HALF_bridge\Control_Demo\SYSTEM\delay\delay.c
????I.A....???????905??2013-04-03?12:14??HALF_bridge\Control_Demo\SYSTEM\delay\delay.h
????I.A....??????2225??2009-05-07?14:42??HALF_bridge\Control_Demo\SYSTEM\sys\cortexm3_macro.h
????I.A....??????6194??2009-05-07?14:42??HALF_bridge\Control_Demo\SYSTEM\sys\stm32f10x_conf.h
????I.A....??????4529??2012-12-18?12:35??HALF_bridge\Control_Demo\SYSTEM\sys\stm32f10x_it.h
????I.A....?????28290??2009-05-07?14:42??HALF_bridge\Control_Demo\SYSTEM\sys\stm32f10x_map.h
????I.A....?????19198??2009-05-07?14:42??HALF_bridge\Control_Demo\SYSTEM\sys\stm32f10x_nvic.h
????I.A....??????3388??2009-05-07?14:42??HALF_bridge\Control_Demo\SYSTEM\sys\stm32f10x_type.h
????I.A....??????6954??2017-11-01?15:46??HALF_bridge\Control_Demo\SYSTEM\sys\sys.c
????I.A....??????3868??2013-04-03?12:13??HALF_bridge\Control_Demo\SYSTEM\sys\sys.h
????I.A....??????3342??2011-04-17?15:42??HALF_bridge\Control_Demo\SYSTEM\usart\usart.c
????I.A....??????1083??2013-04-03?12:13??HALF_bridge\Control_Demo\SYSTEM\usart\usart.h
............此處省略190個文件信息
評論
共有 條評論