OpenEdv-开源电子网

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

用存储设备画实时更新的动态曲线问题

[复制链接]

4

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-7-5
在线时间
13 小时
发表于 2017-9-25 09:19:59 | 显示全部楼层 |阅读模式
我用的是老版本的ucgui 还能看到源代码的那一种 也没有上操作系统 没有外扩SRAM等 主控芯片是STM32F103ZET6 因为是老版本的ucgui 所以也没有画图控件 只有一个按照数组显示静态曲线的函数GUI_DrawGraph。
我的想法是直接调用这个函数 然后每一个循环把新的数据放到数组里面 如此循环 但是这样会重叠在一起 所以需要清屏幕的函数来把上次的图形清除掉 但是这样的话又会让屏幕在绘图的时候闪烁不停。
上一周发现了存储设备这样东西 貌似可以在内存中直接画出组合好的图形然后直接显示 所以想直接在内存里面画好黑色背景 然后叠加每次的静态波形 这样看起来就是动态的了。
存储设备部分程序我是这么写的
hMem = GUI_MEMDEV_Create(Rect.x0, Rect.y0, Rect.x1 - Rect.x0, Rect.y1 - Rect.y0);
GUI_MEMDEV_Select(hMem);
_Draw(liu,i);
GUI_MEMDEV_CopyToLCD(hMem);

第一行创建存储设备 第二行选择存储设备 第三行画图 两个参数分别是liu 要画图的数组名 i 数组现在的长度
static void _Draw(I16* p,int i)
{
    Lcd_ColorBox(Rect.x0,Rect.y0,Rect.x1,Rect.y1,BLACK);
    GUI_DrawGraph(p,i,Rect.x0,399);
}
第四行拷贝到LCD上

现在的问题是
(1)依然屏幕闪烁 好像没有任何区别
(2)我认为第三行应该是往存储设备里面写东西的 到第四句才真的显示到屏幕上 但是实际上去除第四行屏幕也还是可以正常显示 依然闪烁不停
(3)拷贝到屏幕上的那个函数还有一个void GUI_MEMDEV_CopyToLCDAt(GUI_MEMDEV_Handle hMem, int x, int y);这个里面的xy在手册里面是
x
y
X 方向位置。
Y 方向位置。

这两个参数到底是什么意思 是填写坐标还是什么?如果是坐标 用哪个点呢?


注:单步调试发现 hMem是有值的 也就是说创建控件是成功的 但是后面运行结果就和我想的不一样了 是哪里出问题了吗 我理解哪里出错了 真心求教。。。。。。。



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

使用道具 举报

4

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-7-5
在线时间
13 小时
 楼主| 发表于 2017-9-25 14:05:48 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-4-18 10:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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