stm32f103控制液晶屏界面显示用延时影响刷新速率问题

2019-07-25 10:56发布

用液晶屏幕做了一个类似手机充电时候的显示界面(一个电池外框,里面有进度条从无到最长,然后循环),同时液晶屏上还显示一些采集回来的数据。

问题是:充电进度增长的速度非常快,于是我就加了一个延时。也正是因为延时导致液晶屏数据刷新的速率就会变慢。同时液晶屏幕上显示的秒数也会两三秒才变化一次。
因为等到电池进度条从无到最长的过程结束之后(做成了一个函数),从该函数出来,执行其他的部分。

所以想请教大神们看看有没有什么解决的办法,解决这个快了不行,慢了还是不行的矛盾。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
aiyeba
1楼-- · 2019-07-25 14:53
魏状状 发表于 2017-11-13 11:08
还存在另一个问题,风速,压力对采集到的数据影响比较大,如果开气泵,数据会正常显示。但是也不能让气泵开 ...

可以用定时器来控制充电进度快的节奏。

比如  你500ms加一格电的显示,   定时器那边计时   每到500ms   标志位置1   

主函数  里面写

if(Timer_500ms_Flag==1)
{
    Timer_500ms_Flag=0;
     LCD多显示一个电量
}


魏状状
2楼-- · 2019-07-25 18:45
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-25 23:51
这。。。。1,用os。2,延时换短。
275891381
4楼-- · 2019-07-26 00:53
本帖最后由 275891381 于 2017-11-14 14:36 编辑

弄个1ms的定时器做时间源,里面弄个变量xitong_haomiao自加;然后通过读取时间差执行不同的东西,刷屏时间差放小,进度条时间差放大
if(xitong_haomiao-jindutiao_haomiao>=500)
{
        jindutiao_haomiao=xitong_haomiao;
        //进度条更新

}


if(xitong_haomiao-shuaping_haomiao>=50)
{
        shuaping_haomiao=xitong_haomiao;
        //刷新屏幕其他部分

}

steven88
5楼-- · 2019-07-26 02:10
用这款带字库的I2C接口挺方便,类似案子我用过了,这个是STM32的一个demo程序。
lmywudi
6楼-- · 2019-07-26 02:48
我觉得以后还是要慢慢把循环延时给取消掉,不是长久之计,比如可以用状态机来代替

一周热门 更多>