打印
[STM32F0]

单片机控制液晶屏显示曲线的问题

[复制链接]
1680|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wang12zhe|  楼主 | 2014-10-8 13:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


使用单片机控制FT800在屏幕上显示曲线,我的想法是通过很多段的直线组合成一个曲线

在屏幕上华直线没问题,
但是由于MCU资源有限,没办法定义一个大的缓存保存显示这些线段的起点和终点。

我就想一次显示一条线段,这样就不需要定义大的缓存了,
但是测试发现当显示第二条线段的时候,第一条线就会被擦掉。这个让我很郁闷。

请大神帮忙,有什么好办法

打算显示4条曲线,




void showLine (FTU32 * para)
{


        FTU16 static LineDataIndex=0;
        unsigned char uString[5];


       
        FTU16 static Temp=0;       
                HAL_CmdBufIn(CMD_DLSTART);
                //HAL_CmdBufIn(BKGND_BLOB_CLR_BRD);
        //        HAL_CmdBufIn(CLEAR(1,1,1));
                BKGND_BLOB_GRAD_BKG;


  LineDataIndex=can_buff[0].data[3];






if(0==LineDataIndex%2)
        {
         DotBufStart.DotX=can_buff[0].data[4]+can_buff[0].data[5]*256;
        DotBufStart.DotY=can_buff[0].data[6]+can_buff[0].data[7]*256;
        }
if(0!=LineDataIndex%2)
        {
         DotBufEnd.DotX=can_buff[0].data[4]+can_buff[0].data[5]*256;
         DotBufEnd.DotY=can_buff[0].data[6]+can_buff[0].data[7]*256;
        }




      HAL_CmdBufIn( BEGIN(LINES) );//这条直线由于显示的位置一直在变化,所以看到在移动,而且显示第二条直线的时候,第一条就消失了。
      HAL_CmdBufIn( VERTEX2II(DotBufStart.DotX, DotBufStart.DotY, 0, 0) );
      HAL_CmdBufIn( VERTEX2II(DotBufEnd.DotX, DotBufEnd.DotY, 0, 0) );


                       
     HAL_CmdBufIn(DISPLAY());
     HAL_CmdBufIn(CMD_SWAP);
     HAL_BufToReg(RAM_CMD,0);       


       
}


沙发
yyxlmq1314| | 2014-10-22 00:20 | 只看该作者
我最近也在做电流曲线的显示,我在一个屏上面可以显示三条曲线,基本也按照你这种思想来做的,刚开始我也遇到你这种情况,我的解决办法是这样的,首先计算第一点的坐标用一个静态变量或全局变量保存下来,然后计算第二点的坐标,然后和第一点间画一根线,然后把地二个点坐标保存到静态变量上,在计算第三个点,然后和第二个点画线,继续保存,依次类推,满屏后返回原点,同样要对原曲线进行擦除刷新

使用特权

评论回复
板凳
yyxlmq1314| | 2014-10-22 00:21 | 只看该作者
还有要注意四根曲线间的坐标变量尽量不要相同。。。。

使用特权

评论回复
地板
heykay| | 2014-10-23 11:29 | 只看该作者
用STM32大容量系列  几条曲线很轻松  实时曲线显示并移动

使用特权

评论回复
5
yyxlmq1314| | 2014-10-30 23:03 | 只看该作者
heykay 发表于 2014-10-23 11:29
用STM32大容量系列  几条曲线很轻松  实时曲线显示并移动

大容量的。。。我用的是STM32F051R8,屏用的事串口刷的,好慢的说

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

205

帖子

1

粉丝