标题:
基于stm32f334做的一个双路直流稳压电源程序
[打印本页]
作者:
dscs
时间:
2019-3-15 17:18
标题:
基于stm32f334做的一个双路直流稳压电源程序
这是我基于stm32f334做的一个双路直流稳压电源
原创
单片机源程序如下:
#include "Adjusted duty cycle.h"
#include "user.h"
int set_b1=0,set_b2=0;
int set_b=0,set_c=0;
int V_shu=10,I_shu=10;
int a=0,b=0;
uint32_t ADC_Value[3];
int set_V[11]={0,5},set_I[11]={0,5};
int set_V1[5]={0},set_I1[5]={0};
double ad1,ad2;
double SET_I=0.5,SET_V=5;//设置电压电流
extern uint32_t pwm;
void pwM1(int a)
{
HRTIM_CompareCfgTypeDef pwm;
pwm.CompareValue = a;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_COMPAREUNIT_1, &pwm) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
}
void set_key(void)
{
a =__HAL_TIM_GET_COUNTER(&htim2);
b=__HAL_TIM_GET_COUNTER(&htim3);
//显示设置电流电压
OLED_ShowString(0,0,"set_V:");
OLED_ShowString(0,2,"set_I:");
OLED_ShowNum(48,0,set_V[0],1,16,set_V1[0]);
OLED_ShowNum(48,2,set_I[0],1,16,set_I1[0]);
OLED_ShowString(56,2,".");
OLED_ShowNum(56,0,set_V[1],1,16,set_V1[1]);
OLED_ShowNum(64,2,set_I[1],1,16,set_I1[1]);
OLED_ShowString(64,0,".");
OLED_ShowNum(72,0,set_V[2],1,16,set_V1[2]);
OLED_ShowNum(72,2,set_I[2],1,16,set_I1[2]);
OLED_ShowNum(80,0,set_V[3],1,16,set_V1[3]);
OLED_ShowNum(80,2,set_I[3],1,16,set_I1[3]);
// 选择电压位
if(set_b==1)
{
set_b=0;
if(set_b1==1)
{
set_V1[0]=1;
V_shu=0;
}
else if(set_b1==2)
{
set_V1[0]=0;
set_V1[1]=1;
// set_V[4]=a;
V_shu=1;
}
else if(set_b1==3)
{
set_V1[1]=0;
set_V1[2]=1;
//set_V[4]=a;
V_shu=2;
}
else if(set_b1==4)
{
set_V1[2]=0;
set_V1[3]=1;
//set_V[4]=a;
V_shu=3;
}
else if(set_b1>=5)
{
set_V1[3]=0;
set_b1=0;
SET_V=set_V[0]*10+set_V[1]+set_V[2]*0.1+set_V[3]*0.01;
V_shu=10;
}
}
//选择电流位
if(set_c==1)
{
set_c=0;
if(set_b2==1)
{
set_I1[0]=1;
// set_I[4]=b;
I_shu=0;
}
else if(set_b2==2)
{
set_I1[0]=0;
set_I1[1]=1;
// set_I[4]=b;
I_shu=1;
}
else if(set_b2==3)
{
set_I1[1]=0;
set_I1[2]=1;
// set_I[4]=b;
I_shu=2;
}
else if(set_b2==4)
{
set_I1[2]=0;
set_I1[3]=1;
//
I_shu=3;
}
else if(set_b2>=5)
{
set_I1[3]=0;
set_b2=0;
I_shu=10;
SET_I=set_I[0]+set_I[1]*0.1+set_I[2]*0.01+set_I[3]*0.001;
}
}
set_vi();
set_I[4]=b;
set_V[4]=a;
}
void set_vi()
{
//设置电压
if(__HAL_TIM_GET_COUNTER(&htim2)>a)
{
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
;
}
set_V[V_shu]++;
if(set_V[0]>3)
{
set_V[0]=0;
}
if(set_V[V_shu]>9)
{
set_V[V_shu]=0;
}
a =__HAL_TIM_GET_COUNTER(&htim2);
}
else if(__HAL_TIM_GET_COUNTER(&htim2)<a)
{
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
;
}
set_V[V_shu]--;
if(set_V[V_shu]<0)
{
set_V[V_shu]=9;
}
if(set_V[0]<0)
{
set_V[0]=3;
}
if(set_V[0]>3)
{
set_V[0]=0;
}
if(set_V[V_shu]>9)
{
set_V[V_shu]=0;
}
a =__HAL_TIM_GET_COUNTER(&htim2);
}
//设置电流
if(__HAL_TIM_GET_COUNTER(&htim3)>b)
{
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
;
}
set_I[I_shu]++;
if(set_I[I_shu]>9)
{
set_I[I_shu]=0;
}
if(set_I[0]<0)
{
set_I[0]=0;
}
if(set_I[0]>3)
{
set_I[0]=3;
}
b=__HAL_TIM_GET_COUNTER(&htim3);
}
else if(__HAL_TIM_GET_COUNTER(&htim3)<b)
{
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
;
}
if(set_I[I_shu]<0)
{
set_I[I_shu]=9;
}
if(set_I[I_shu]>9)
{
set_I[I_shu]=0;
}
if(set_I[0]<0)
{
set_I[0]=0;
}
if(set_I[0]>3)
{
set_I[0]=3;
}
set_I[I_shu]--;
b=__HAL_TIM_GET_COUNTER(&htim3);
}
}
void ADC_VI()
{
// for(int i=0;i<3;i++)
// {
// HAL_ADC_Start(&hadc2);
// HAL_ADC_PollForConversion(&hadc2,50);
// ADC_Value[i] = HAL_ADC_GetValue(&hadc2);
// }
// HAL_ADC_Stop(&hadc2);
// HAL_Delay(10) ;
//
// ad1=(double)ADC_Value[1]*(3.0/4096)*10;//电压
// ad2=(double)ADC_Value[2]*(3.0/4096);//电流
// ad1 = ad1+0.062*ad1 - 1.0747-0.2;
// // ad2 =ad2 +0.0062*ad2-0.10747;
// ad2=ad2+0.06;
OLED_ShowString(0,4,"V:");
OLED_ShowString(0,6,"I:");
OLED_ShowString(32,4,".");
OLED_ShowNum(16,4,ad1,2,16,0);
OLED_ShowNum(40,4,(ad1-(int)ad1)*10000,4,16,0);
// OLED_ShowNum(0,4,ad1,4,16,0);
OLED_ShowNum(16,6,ad2,2,16,0);
OLED_ShowNum(80,4,ADC_Value[1],4,16,0);
//OLED_ShowNum(80,6,ADC_Value[2],4,16,0);
OLED_ShowNum(80,6,pwm,5,16,0);
OLED_ShowNum(40,6,(ad2-(int)ad2)*10000,4,16,0);
OLED_ShowString(32,6,".");
PWM_set();
}
复制代码
所有资料51hei提供下载:
DY_3.7z
(3.98 MB, 下载次数: 51)
2019-3-16 01:00 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2019-3-16 01:01
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
作者:
梦想天空
时间:
2019-6-14 15:20
你好,请问有原理图吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1