初级会员
积分 118
金钱 118
注册时间 2018-3-10
在线时间 66 小时
10 金钱
主要是通过ADC得到一个电压值,把这个电压值在显示屏上显示出来,而且设置判断,当这个电压值小于3 的时候PA8会输出脉冲信号。个人觉得是不是if语句里面有问题?
[mw_shl_code=c,true]int main(void)
{
int a;
int value;
float temp;
delay_init();
MOTOR_Init();
delay_init(); //延时函数初始化
uart_init(9600); //串口初始化为9600
adc_init(); //ADC初始化
LCD_Init();
LCD_ShowString(15,150,200,24,24,"VOL:0.0000V");
while(1)
{
a=Get_Adc(ADC_Channel_1);
temp=(float)a*(3.3/4096);
a=temp;
LCD_ShowxNum(63,150,a,1,24,0);
temp-=a;
temp*=10000;
LCD_ShowxNum(87,150,temp,4,24,0X80);
printf("V:%f v\r\n",temp);
value=3;
if (temp<value)//电压小于3,发送200hz的脉冲信号
{
while(1){
GPIO_SetBits(GPIOA,GPIO_Pin_8);
delay_ms(5);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
delay_ms(5);
}
}
delay_ms(1000);
}
}[/mw_shl_code]
我来回答