OpenEdv-开源电子网

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

有关使用液晶屏显示波形的问题

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2016-5-16
在线时间
7 小时
发表于 2016-5-16 22:34:53 | 显示全部楼层 |阅读模式
1金钱
各位电子工作者们,本人是新手,最近应导师要求做一块stm32产生控制波形(控制后面的发射板),并使用自带adc采集发射电压与电流并用液晶屏进行波形的显示。我查了一下资料,发现大多数液晶屏显示实验显示的都是字符,对于怎么显示波形资料较少。我想的是先读取adc采集的值,然后将其转化成电压的值,在将这个电压转换成屏幕上点的坐标(具体转换方法我还不太清楚,想板子焊完后试试),最后将两点进行连线。不断进行采集,从而不断连线,最后产生波形。但是这样我碰到了一个问题,就是随着不断的采集,对应点的一个坐标就会不断增加,一段时间后肯定会超过屏幕的显示范围,这个时候该怎么设计程序啊?如果将这个坐标重置为开始时的坐标的话就会覆盖前面的波形,而不是像示波器一样波形向前“流动”。各位大神,该怎么办呢?不知道我有没有表达清楚。如果有其他的显示波形的方法,也麻烦指导一下。

最佳答案

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

所有的坐标点是保存的数组中的,如320点宽的屏幕,定义x[320],x[0]~x[319]表示每个点的y值,在第一屏是由0一直增加到319,到320时,就 x[0]=x[1];x[1]=x[2].......x[318]=x[319];x[319]=最新值,然后清屏,从x[0]到x[319]重画所有的点,就是这么个思路
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

188

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2282
金钱
2282
注册时间
2013-12-16
在线时间
448 小时
发表于 2016-5-16 22:34:54 | 显示全部楼层
所有的坐标点是保存的数组中的,如320点宽的屏幕,定义x[320],x[0]~x[319]表示每个点的y值,在第一屏是由0一直增加到319,到320时,就
x[0]=x[1];x[1]=x[2].......x[318]=x[319];x[319]=最新值,然后清屏,从x[0]到x[319]重画所有的点,就是这么个思路
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10573
金钱
10573
注册时间
2014-6-12
在线时间
1022 小时
发表于 2016-5-17 09:32:30 | 显示全部楼层
一屏画完后可以清屏画下一屏,要流动的话可以先把老的向后移再画新的。
回复

使用道具 举报

24

主题

208

帖子

0

精华

高级会员

Rank: 4

积分
714
金钱
714
注册时间
2014-4-8
在线时间
160 小时
发表于 2016-5-17 11:55:55 | 显示全部楼层
我对STM32做示波器的程序不是很了解,不过直觉感觉,你的lcd只需要一个写点的函数就可以了。
至于你说的循环扫描,可以使用一个for循环做,要根据你LCD走,这个要调试一下才知道。
个人见解
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2016-5-16
在线时间
7 小时
 楼主| 发表于 2016-5-17 12:10:21 | 显示全部楼层
xuyaqi 发表于 2016-5-17 09:32
一屏画完后可以清屏画下一屏,要流动的话可以先把老的向后移再画新的。

老的向后移我不太清楚怎么移,前面的图线已经画到屏上了,移动的话是要整体向后移一位,这个该怎么用程序实现?
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2016-5-16
在线时间
7 小时
 楼主| 发表于 2016-5-17 12:21:49 | 显示全部楼层
xinxian 发表于 2016-5-17 11:55
我对STM32做示波器的程序不是很了解,不过直觉感觉,你的lcd只需要一个写点的函数就可以了。
至于你说的循 ...

用写点的方式也行,只要点取得足够密,也能形成图线,循环扫描我用的是while,但是还是那个问题,就是如何实现屏幕整体向后移动,从而使最新的点可以自然地连接在后面,就像示波器一样?
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10573
金钱
10573
注册时间
2014-6-12
在线时间
1022 小时
发表于 2016-5-18 07:59:17 | 显示全部楼层
tan逸 发表于 2016-5-17 12:10
老的向后移我不太清楚怎么移,前面的图线已经画到屏上了,移动的话是要整体向后移一位,这个该怎么用程序 ...

如果移一位,先清屏把原先横坐标在x的点画在x-1位置上,其余点依次类推,腾出的位置画新点。
回复

使用道具 举报

7

主题

185

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2729
金钱
2729
注册时间
2015-12-27
在线时间
469 小时
发表于 2016-5-18 08:52:04 | 显示全部楼层
有没有LCD的驱动芯片的指令是可以左移或者右移屏幕的呢?不然每多增加一个点都要刷一整个屏幕
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 08:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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