OpenEdv-开源电子网

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

关于LCD_ShowChar函数中mode 参数的配置

[复制链接]

13

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
359
金钱
359
注册时间
2017-8-11
在线时间
94 小时
发表于 2017-10-13 16:23:57 | 显示全部楼层 |阅读模式
新手,今天发现ADC一节中的LCD_ShowxNum函数中的mode 参数书中配置有一些困惑,原程序如下:
while(1)
        {
        adcx=Get_Adc_Average(ADC_CHANNEL_5,20);//获取通道5的转换值,20次取平均
                LCD_ShowxNum(134,130,adcx,4,16,0);    //显示ADCC采样后的原始值
                temp=(float)adcx*(3.3/4096);          //获取计算后的带小数的实际电压值,比如3.1111
                adcx=temp;                            //赋值整数部分给adcx变量,因为adcx为u16整形
                LCD_ShowxNum(134,150,adcx,1,16,0);    //显示电压值的整数部分,3.1111的话,这里就是显示3
                temp-=adcx;                           //把已经显示的整数部分去掉,留下小数部分,比如3.1111-3=0.1111
                temp*=1000;                           //小数部分乘以1000,例如:0.1111就转换为111.1,相当于保留三位小数。
                LCD_ShowxNum(150,150,temp,3,16,0X80); //显示小数部分(前面转换为了整形显示),这里显示的就是111.
                LED0_Toggle;
                delay_ms(250);       
        }
}

我将LCD_ShowxNum函数中的mode 参数改为0,下载运行,没有变化。看了一下此函数发现mode参数已经和0X01相与,程序如下:
void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode)
{  
        u8 t,temp;
        u8 enshow=0;                                                  
        for(t=0;t<len;t++)
        {
                temp=(num/LCD_Pow(10,len-t-1))%10;
                if(enshow==0&&t<(len-1))
                {
                        if(temp==0)
                        {
                                if(mode&0X80)LCD_ShowChar(x+(size/2)*t,y,'0',size,mode&0X01);  
                                else LCD_ShowChar(x+(size/2)*t,y,' ',size,mode&0X01);  
                                continue;
                        }else enshow=1;
                          
                }
                 LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,mode&0X01);
        }
}

也就是说已经没有了填充功能,只能叠加或者不叠加。那么什么时候填充功能才能用到,在哪个函数里呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
359
金钱
359
注册时间
2017-8-11
在线时间
94 小时
 楼主| 发表于 2017-10-13 16:35:43 来自手机 | 显示全部楼层
刚仔细看了一下,是用来填充0,知道了。
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-10-19
在线时间
1 小时
发表于 2017-10-19 14:51:46 | 显示全部楼层
在吗 这里MODE选0 更选0X80有什么区别
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 19:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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