[其他ST产品] bandgap的基准电压的计算

[复制链接]
1424|2
 楼主| lgq_123 发表于 2015-5-6 15:16 | 显示全部楼层 |阅读模式
U16 j;
U16 g;       
for(i=0;i<2;i++)
                {
                        delay_ms(250);
                           UART1_SendData(0xAA);
                //        Get_ADC10bitResult(i);                //参数0~7,查询方式做一次ADC, 丢弃一次
                   if(i=0)
                   {
                        g = Get_ADC10bitResult(2);             //参数0~7,查询方式做一次ADC, 返回值就是结果, == 1024 为错误

                   }
                   else
                   {
                            P1ASF = 0;
                                j = Get_ADC10bitResult(0);        //读内部基准电压, P1ASF=0, 读0通道
                                P1ASF = ADC_P12;
                                Nref = j;
                       
                   }       
                        j = (u32)2500 * (u32)g / Nref;                        //Ux = Vref * Nx / Nref. Vref = 2500mV
                        Value_high = j/256;
                        Value_low  = j%256;
                        UART1_SendData(Value_high);
                        UART1_SendData(Value_low);
                        UART1_SendData(0xBB);
                        delay_ms(250);                                   
                }

做过电压ADC的大神们,这样计算对么?
jrcsh 发表于 2015-5-6 15:18 | 显示全部楼层
按文档~~~~ 的公式进行计算就还原数值来了~~~~
 楼主| lgq_123 发表于 2015-5-7 10:18 | 显示全部楼层
jrcsh 发表于 2015-5-6 15:18
按文档~~~~ 的公式进行计算就还原数值来了~~~~

算出的数值通过串口发送到PC机上,通过串口调试助手接收到的是十六进制数,十六进制数得先转化成十进制,在对照ASCII码表,找到对应的数字字符,感觉好麻烦,有没有比较好的处理办法呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

103

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部