初级会员

- 积分
- 117
- 金钱
- 117
- 注册时间
- 2019-4-13
- 在线时间
- 17 小时
|

楼主 |
发表于 2019-6-9 20:32:19
|
显示全部楼层
本帖最后由 51cc 于 2019-6-9 20:46 编辑
ADC.C 和ADC.H用的是原版代码
如果把第一段代码放在if(0){}里面,ADC3结果正常
以下代码不正常:
以下是main 读取ADC的代码
//-----------------ADC--------------------------
adcx=Get_Adc_Average(ADC1_Handle,ADC_CHANNEL_19,20);//获取通道19的转换值,20次取平均
LTCD_ShowxNum(120,40,adcx,5,16,0); //显示ADCC采样后的原始值
temp=(float)adcx*(3.3/65536); //获取计算后的带小数的实际电压值,比如3.1111
adcx=temp; //赋值整数部分给adcx变量,因为adcx为u16整形
LTCD_ShowxNum(300+8*9,40,adcx,1,16,0); //显示电压值的整数部分,3.1111的话,这里就是显示3
temp-=adcx; //把已经显示的整数部分去掉,留下小数部分,比如3.1111-3=0.1111
temp*=1000; //小数部分乘以1000,例如:0.1111就转换为111.1,相当于保留三位小数。
LTCD_ShowxNum(300+8*9+8+8,40,temp,3,16,0X80); //显示小数部分(前面转换为了整形显示),这里显示的就是111.
tempCPU=Get_Temprate(); //得到温度值
if(tempCPU<0)
{
tempCPU=-tempCPU;
LTCD_ShowString(450+8*4,20,16,16,16,"-"); //显示负号
}else LTCD_ShowString(450+8*4,20,16,16,16," "); //无符号
printf("cpu:%d\r\n",tempCPU);
LTCD_ShowxNum(450+8*5,20,tempCPU/100,2,16,0); //显示整数部分
LTCD_ShowxNum(450+8*8,20,tempCPU%100,2,16,0); //显示小数部分
|
|