OpenEdv-开源电子网

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

关于显示屏闪烁的问题、、

[复制链接]

12

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-9-20
在线时间
56 小时
发表于 2016-11-11 16:22:35 | 显示全部楼层 |阅读模式
20金钱
我使用的是Mini板、在参照TFT LCD液晶显示实验的时候我想让屏幕不闪烁或者闪烁速度看不出、有什么方法?

最佳答案

查看完整内容[请看2#楼]

这就是刷屏函数,不刷屏不会闪
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2016-11-11 16:22:36 | 显示全部楼层
这就是刷屏函数,不刷屏不会闪
QQ图片20161114161620.png
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2016-11-12 09:23:26 | 显示全部楼层
进入大循环之后的程序,包括中断服务程序,不要使用 DELAY这样子的延时代码.试一试.
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2016-11-12 09:53:25 | 显示全部楼层
去掉delay_ms(1000);
回复

使用道具 举报

12

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-9-20
在线时间
56 小时
 楼主| 发表于 2016-11-14 09:07:43 | 显示全部楼层

去掉之后闪的不能看、、
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2016-11-14 12:21:30 | 显示全部楼层
刷屏需要时间,所以会闪。如果你只更改显示的文字,不更改背景颜色这样就不会闪
回复

使用道具 举报

12

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-9-20
在线时间
56 小时
 楼主| 发表于 2016-11-14 16:07:54 | 显示全部楼层
[mw_shl_code=cpp,true]#include "readport.h"  
#include "lcd.h"

int main(void)
{
       
        int SUM;
        double angle,Angle;
        float Dev;
        u8 Sum[12],RSL[30],DEV[30];                                                                  //存放角度值字符串       

       
        void READPORT_Init();
        int READPORT_Sum();
       
        delay_init();                                                          //延时函数初始化       
        uart_init(9600);                                          //串口初始化为9600
  LCD_Init();
        POINT_COLOR=RED;

while(1)
{
         SUM=READPORT_Sum();
         if(EN1==0&&EN2==0)
                 {
                         Angle=0.3515625;
                 }
         else if(EN1==0&&EN2==1)
                 {
                         Angle=0.087890625;
                 }
         else if(EN1==1&&EN2==0)
                 {
                         Angle=0.02197265625;
                 }
                else if(EN1==1&&EN2==1)
                 {
                         Angle=0.0054931640625;
                 }

                 angle=SUM*Angle;
               
                sprintf((char*)RSL,"Accuracy:%10.13f",Angle);
               
                Dev=DEVIATION(&angle,&Angle);
               
               
          sprintf((char*)Sum,"Angle:%10.14f",angle);
                sprintf((char*)DEV,"Deviation:%5.0f",Dev);

                LCD_Clear(GRAY);
          LCD_ShowString(15,20,300,24,24,Sum);                                                    //显示读取角度
               
                if(BUSY==0)
                {
                        if(EN1==0&&EN2==0)
                         LCD_ShowString(15,50,300,24,24,"EN1=0,EN2=0,10 bits,");
      if(EN1==0&&EN2==1)
                         LCD_ShowString(15,50,300,24,24,"EN1=0,EN2=1,12 bits,");
                        if(EN1==1&&EN2==0)
                         LCD_ShowString(15,50,300,24,24,"EN1=1,EN2=0,14 bits,");
                        if(EN1==1&&EN2==1)
                         LCD_ShowString(15,50,300,24,24,"EN1=1,EN2=1,16 bits,");
                       
                  LCD_ShowString(15,80,300,24,24,RSL);                                        //显示精确度
                        LCD_ShowString(15,110,200,24,24,DEV);                                       //显示误差
                        LCD_ShowString(15,140,200,24,24,"data can be used");                        //数据有效;
                 
                }
          else
                LCD_ShowString(15,140,200,24,24,"data can't be used");                      //数据不可用;

   delay_ms(1000);

}
}[/mw_shl_code]
回复

使用道具 举报

12

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-9-20
在线时间
56 小时
 楼主| 发表于 2016-11-14 16:09:02 | 显示全部楼层
电子之旅 发表于 2016-11-14 12:21
刷屏需要时间,所以会闪。如果你只更改显示的文字,不更改背景颜色这样就不会闪

我这属于更改背景色么?
回复

使用道具 举报

12

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-9-20
在线时间
56 小时
 楼主| 发表于 2016-11-14 16:31:31 | 显示全部楼层
电子之旅 发表于 2016-11-14 16:18
这就是刷屏函数,不刷屏不会闪

谢谢亲、、、帮了个大忙
回复

使用道具 举报

12

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-9-20
在线时间
56 小时
 楼主| 发表于 2016-11-14 16:39:22 | 显示全部楼层
电子之旅 发表于 2016-11-14 12:21
刷屏需要时间,所以会闪。如果你只更改显示的文字,不更改背景颜色这样就不会闪

尴尬了、、我刚发现你上面的那个switch(),我根本没用,下面我确实是有用delay_ms(),但是这个延时我试过、去掉之后闪的更厉害、、
回复

使用道具 举报

3

主题

794

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
1502
金钱
1502
注册时间
2015-3-3
在线时间
460 小时
发表于 2016-11-15 11:30:07 | 显示全部楼层
Riven丶叮当 发表于 2016-11-14 16:39
尴尬了、、我刚发现你上面的那个switch(),我根本没用,下面我确实是有用delay_ms(),但是这个延时我试过、 ...

你把switch中的X改为0~11中的任意一个数字
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2016-11-15 12:36:57 | 显示全部楼层
帧数跟不上就会感觉闪
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 02:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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