基于STM32三相SPWM逆变电源设计(程序 原理图) 程序编译器:keil 5 编程语言:C语言
下载链接
程序流程图:
硬件框架图:
实物图:
原理图(提供源文件):
PCB(提供源文件):
源程序(提供源文件):
void GPIO_init(void); u16 temp,key; u8 Hz=50; float K_Temp; ///输出比例系数 float Ti=0.15; float qiwang; int main(void) {
SYSTICK_Init();//延迟初始化 RCC_Configuare();//时钟初始化 //TIM1_Configuare(); ///定期中断初始化 NVIC_Configuration2(); // 中断分组 TIM3_GPIO_Config(); //spwm TIM3_Mode_Config(); //spwm ADC_Configuration(); ///模数转换初始化 NVIC_Configuration1(); //spwm GPIO_init(); OLED_Init(); //显示初始化 OLED_Clear(); delay_ms(2); InitKey(); K_Temp=1; InitKey(); OLED_ShowString(10,0, "DC_AC_Power",16); OLED_ShowString(0,2, "Ui= V",16); OLED_ShowString(0,4, "Fre= Hz",16); OLED_ShowString(0,6, "K= ",16); while(1) {
adc_mean(); key=KEY_Scan(0); key_mode(key); temp=(u16)(ADC_MEAN[0]*3.3*1000/4095)*11;//11倍电阻分压 // OLED_ShowNum (36,3,ADC_MEAN[0],4,12); //采样电压显示 OLED_ShowNum (28,2,temp/10000,1,16); OLED_ShowNum (36,2,(temp%10000)/1000,1,16); OLED_ShowChar(46,2,'.',16);//显示ASCII字符 OLED_ShowNum (54,2,(temp%1000)/100,1,16); OLED_ShowNum (30,6,(int)(K_Temp*10)/10,1,16); OLED_ShowChar(38,6,'.',16);//显示ASCII字符 OLED_ShowNum (46,6,((int)(K_Temp*10)%10)/1,1,16); OLED_ShowNum (40,4,Hz/10,1,16); OLED_ShowNum (48,4,Hz%10,1,16); } }