OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2116|回复: 7

帮忙看看为啥串口助手上显示的与LCD屏幕上的值不一样

[复制链接]

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-4-5
在线时间
7 小时
发表于 2018-4-23 20:10:57 | 显示全部楼层 |阅读模式
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "adc.h"
#include "timer.h"
#include "led.h"
//extern  __IO uint16_t ADC_Con[4];  //ADC1×a»»oóμÄμçÑ1Öμí¨1yDMA·½ê½′«μ½SRAM
//float ADC_ConVL[4];          //¾Ö2¿±äá¿£¬óÃóú±£′æ×a»»¼ÆËãoóμÄμçÑ1Öμ
extern u32 s,m,h,d;
int main(void)
{ u8 t;
        u8 len;       
        u16 times=0;
        u16 adcx0,adcx1,adcx2,adcx3;
        float temp0,temp1,temp2,temp3;
        delay_init();                     //Ñóê±oˉêy3õê¼»ˉ          
        uart_init(9600);                 //′®¿ú3õê¼»ˉÎa9600
        LCD_Init();
  LED_Init();
        Adc_Init();                                  //ADC3õê¼»ˉ            
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// éèÖÃÖD¶ÏóÅÏè¼¶·Ö×é2
        TIM3_Int_Init(9999,7199);//10KhzμļÆêyÆμÂ꣬¼Æêyμ½10000 Îa1000ms
        POINT_COLOR=RED;//éèÖÃ×ÖìåÎaoìé«
        LCD_ShowString(60,50,200,16,16,"Performance test");       
//        LCD_ShowString(60,70,200,16,16,"");       
//        LCD_ShowString(60,90,200,16,16,"");
        LCD_ShowString(60,70,200,16,16,"2018/3/24");       
        //ÏÔê¾ìáê¾DÅÏ¢
        POINT_COLOR=BLUE;//éèÖÃ×ÖìåÎaà¶é«   
        LCD_ShowString(60,110,200,16,16,"ADC_CH0_VOL:0.000V");         

        LCD_ShowString(60,150,200,16,16,"ADC_CH1_VOL:0.000V");
             
        LCD_ShowString(60,190,200,16,16,"ADC_CH2_VOL:0.000lx");

        LCD_ShowString(60,230,200,16,16,"ADC_CH3_VOL:0.000lx");
        LCD_ShowString(60,270,200,16,16,"Time1: 00:00:00:00");

        while(1)
        {       
                            /////μúò»Â·2éÑù3ìDò///////////////////////
                adcx0=Get_Adc(ADC_Channel_0);//ADC_Channel_x=ADC_INx,0~4096
                temp0=(float)adcx0*(3.3/4096);
                adcx0=temp0;
                LCD_ShowNum(156,110,adcx0,1,16);//ÏÔê¾μçÑ1Öμ
                temp0-=adcx0;
                temp0*=1000;
                LCD_ShowNum(172,110,temp0,3,16);
                ///////μú¶t·2éÑù3ìDò//////////////////////////////////////////////
                adcx1=Get_Adc(ADC_Channel_1); //ADC_Channel_x=ADC_INx,0~4096
                temp1=(float)adcx1*(3.3/4096);
                adcx1=temp1;
                LCD_ShowNum(156,150,adcx1,1,16);//ÏÔê¾μçÑ1Öμ
                temp1-=adcx1;
                temp1*=1000;
                LCD_ShowNum(172,150,temp1,3,16);
                delay_ms(250);
                ///////μúèy·2éÑù3ìDò//////////////////////////////////////////////
                adcx2=Get_Adc(ADC_Channel_2);        //ADC_Channel_x=ADC_INx,0~4096
                temp2=(float)adcx2*(3.3/4096*923);
                adcx2=temp2;
                LCD_ShowNum(156,190,adcx2,5,16);//ÏÔê¾μçÑ1Öμ
                delay_ms(250);
                ///////μúËÄ·2éÑù3ìDò//////////////////////////////////////////////
                adcx3=Get_Adc(ADC_Channel_3);        //ADC_Channel_x=ADC_INx,0~4096
                temp3=(float)adcx3*(3.3/4096*923);
                adcx3=temp3;
                LCD_ShowNum(156,230,adcx3,5,16);//ÏÔê¾μçÑ1Öμ
                delay_ms(250);
                        times++;
                        if(times%5==0)
                        {
                                printf("\r\nADC0=%8.3f  V",Get_Adc(ADC_Channel_0)*(3.3/4096));
                                printf("\r\nADC1=%8.3f  V",Get_Adc(ADC_Channel_1)*(3.3/4096));
                                printf("\r\nADC2=%8.3f  lx",Get_Adc(ADC_Channel_2)*(3.3/4096*923));
                                printf("\r\nADC3=%8.3f  lx\r\n\n\r\n",Get_Adc(ADC_Channel_3)*(3.3/4096*923));
                       
                        }
                        delay_ms(10);   
                }
        }                                                                                                   


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-4-23 22:15:24 | 显示全部楼层
本帖最后由 275891381 于 2018-4-23 22:17 编辑

你printf的数据是Get_Adc新读取的呀,肯定不一样,你应该adcx0  1  2  3 读取后就 printf  出去
回复 支持 1 反对 0

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-4-5
在线时间
7 小时
 楼主| 发表于 2018-4-23 20:12:26 | 显示全部楼层
就是在串口助手上显示的数值与我在LCD屏幕上的值不一样 ,我调用的值是同一个呀 可是为啥最后显示的值会不一样
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-4-5
在线时间
7 小时
 楼主| 发表于 2018-4-24 19:38:40 | 显示全部楼层
275891381 发表于 2018-4-23 22:15
你printf的数据是Get_Adc新读取的呀,肯定不一样,你应该adcx0  1  2  3 读取后就 printf  出 ...

调用之后的值是一样的呀   你看看上面的
回复 支持 反对

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-4-24 20:13:36 | 显示全部楼层
Boolean 发表于 2018-4-24 19:38
调用之后的值是一样的呀   你看看上面的

我怎么瞅都不一样
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-4-5
在线时间
7 小时
 楼主| 发表于 2018-4-25 09:28:24 | 显示全部楼层
275891381 发表于 2018-4-24 20:13
我怎么瞅都不一样

哦明白了,你的意思是重新读取的值和原来的不一样了是吧
回复 支持 反对

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-4-25 09:32:08 | 显示全部楼层
Boolean 发表于 2018-4-25 09:28
哦明白了,你的意思是重新读取的值和原来的不一样了是吧

对呀,你printf的数据是新读出来的,给显示器显示的肯定不一样的
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-4-5
在线时间
7 小时
 楼主| 发表于 2018-4-25 09:35:20 | 显示全部楼层
275891381 发表于 2018-4-25 09:32
对呀,你printf的数据是新读出来的,给显示器显示的肯定不一样的

3q  解决啦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 07:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表