STM32/STM8技术论坛
直播中

huihui163

8年用户 487经验值
擅长:电源/新能源 测量仪表 嵌入式技术
私信 关注
[问答]

ad转换的值是二进制数?,怎么变成十进制数呢

ADC1_CR1_bit.START = 1;       //启动ADC    //delay(500);

                while(ADC1_SR_bit.EOC == 0);  //等待转换结束
                ADC1_SR_bit.EOC = 0;          //清除中断标志
                adc_tmp = ADC1_DRH;
                *AD_Value = (unsigned int)((adc_tmp << 8) + ADC1_DRL);   //高8位与低8位相加,凑成16位数据  
                ADC1_CR1_bit.START = 0;

这是怎么读取的啊,把数据给一个指针变量,不懂,ad转换的值是二进制数?,通过液晶屏显示怎么变成十进制数呢

回帖(7)

武林

2017-4-20 13:02:51
计算机只能进行2进制运算,C程序中用10或16进制表示的表达式都会由编译器转换成2进制码。要以10进制的方式显示一个数值就得把这个数值按万、千、百、十、个分离,以字符0~9的形式显示。例如一个16位的数xx,分解方法:

        wan = xx/10000;
        qian=(xx%10000)/1000;
        bai =(xx%1000)/100;
        shi =(xx%100)/10;
        ge  = xx%10;
举报

huihui163

2017-4-20 15:20:48
对,分解就是这样的,但是ad转换的结果是二进制数xx,你不先转换十进制数,怎么xx/10000这个运算呢比如xx=0xff,十进制数位255, wan = 255/10000;不转换就是 wan = 0xff/10000,这怎么计算啊
举报

huihui163

2017-4-20 15:27:33
引用: 人中狼 发表于 2017-4-20 09:35
[问答] 这是一个空调温度控制系统,但我的传感器采集到的温度为什么不能显示到液晶屏上,求指点
这个链接里有一个温度转换的程序,看看有没有帮助

我接受的是模拟信号,不太一样把,我用的是12864,
举报

武林

2017-4-20 16:07:28
本帖最后由 wulinwl 于 2017-4-20 16:11 编辑
引用: huihui163 发表于 2017-4-20 15:20
对,分解就是这样的,但是ad转换的结果是二进制数xx,你不先转换十进制数,怎么xx/10000这个运算呢比如xx=0xff,十进制数位255, wan = 255/10000;不转换就是 wan = 0xff/10000,这怎么计算啊

C程序中用10或16进制表示的表达式都会由编译器转换成2进制码。xx=0xff一样可以分解,你就看成是xx=1111 1111,只是只有百、十、个位。只是分解成代表10进制数的符号用于显示,是符号不是数!再不明白就无语了。
举报

lee_st

2017-4-20 16:19:36
不想说什么了,看看,
举报

huihui163

2017-4-21 15:47:45
引用: wulinwl 发表于 2017-4-20 16:07
C程序中用10或16进制表示的表达式都会由编译器转换成2进制码。xx=0xff一样可以分解,你就看成是xx=1111 1111,只是只有百、十、个位。只是分解成代表10进制数的符号用于显示,是符号不是数!再不明白就无语了。

void ADC_Data_Read(unsigned int *AD_Value)
{
  ADC1_SQR4_bit.CHSEL_S0 = 1;   //设置通道0序列
  ADC1_CR1_bit.START = 1;       //启动ADC

  while(ADC1_SR_bit.EOC == 0);  //等待转换结束
  ADC1_SR_bit.EOC = 0;          //清除中断标志
  *AD_Value = ADC1_DRH;          //先读取高8位
  *AD_Value = (unsigned int)((*AD_Value << 8) + ADC1_DRL);   //高8位与低8位相加,凑成16位数据
}
ADC_Data_Read(&ADCData);
这里 *AD_Value直接用个变量AD_Value也行吧调用该成ADC_Data_Read(AD_Value);
举报

更多回帖

发帖
×
20
完善资料,
赚取积分