打印
[STM32F4]

【Nucleo设计分享】基于ST-emWIN的实时数据采集系统

[复制链接]
11628|102
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 fengye5340 于 2015-2-28 12:57 编辑

                                                              基于ST-emWIN的实时数据采集系统

一、应用背景  

    在一些控制项目中,需要对温度,压力及其它模拟量进行采集,采集到的数据能够实时的显示出来,而采用上位机界面实现成本较高,通常要额外的电脑或者其它硬件,采用TFT液晶屏是一种比较理想的方式,从目前常用的3.2寸/4.3寸/5.7寸/7寸触摸屏都能很好的实现实时数据显示,实现硬件的成本低。

二、功能描述     

本实时数据采集系统实现的功能如下:

     1 采用ST_emWIN图形库来实现GUI界面,其中用到了按钮,图表,文字,列表项等多种控件。emWin图形库由德国SEGGER公司开发,可为图形LCD设计提供高级支持。它适用单任务或 是多任务系统环境。架构基于模块化设计,由不同的模块中的不同层组成。包括液晶驱动模块,内存设备模块,窗口系统模块,窗口控件模块,反锯齿模块和触摸屏 及外围模块。其主要特性包括丰富图形库,多窗口、多任务机制,窗口管理及丰富窗口控件类(按钮、检验框、单/多行编辑框、列表框、进度条、菜单等),多字 符集和多字体支持,多种常见图像文件支持,鼠标、触摸屏支持,灵活自由配制等特性。
     在移植emWIN之前,需要做好LCD驱动,这里采用的是SSD1289控制器的3.2LCD模块。因为NUCLEO-F411RE开发平台上面的MCU64引脚,采用16位方式和LCD通信,这里用PB0-PB7PC0-PC7组合的方式实现16位驱动。 整个实时数据采集系统的GUI界面由3个窗口组成。最上面是状态窗口,在里面实现了标题和时间显示。下面是主窗口,在主窗口里面又分为两个部分:一部分是四个按钮,分别是【开始采集】、【停止采集】、【存储数据】、【时间设置】。因为没有增加SD卡部分,这里无法使用XBF字体来显示汉字,用英文字符表示。另一部分是波形显示窗口,左边是幅度值:0-3.3V。带网格显示,最多可以显示4096个点。【开始采集】和【停止采集】的回调函数相对简单,分别由定时器控制波形数据的显示与停止。第三个窗口是数据记录窗口,它被隐藏在底部,由按钮【存储数据】的回调函数进行触发到顶部进行显示。数据记录窗口又由两个部分组成。左边是三个按钮,分别是【增加数据记录】【删除数据记录】和【确认返回】,右边是数据记录表,每一条记录由【当前时间头+采集数据】组成。若增加SD卡驱动后,可以将记录实时保存到SD卡中。最后一个按钮是【时间设置】,它在回调函数中,建立一个对话框,用于实现对实时时钟的【时:分:秒 】进行修改,确定后,即可实时显示修改好的时间。具体的界面如下:


                  
                              图:波形数据显示

                 
                             图:数据存储界面

               图:时间设定界面
    2、RTC实时时钟:STM32F4系列的实时时钟相对简单,比STM32F1系列更加直观和容易设置。在NUCLEO-F411RE上实现了年月日时分秒的数据,在界面上仅显示了时分秒。
    3、 ADC数据采集:因为是用于演示,用F411RE自带ADC模块实现一路DMA方式的数据采集。在存储数据过程中,采用了“乒乓双缓冲”方式实现数据存储。
    4、预留SD卡存储功能:这个数据采集系统,要实现长时间数据存储,在不借助上位机的情况下,必须用SD卡来实现。因为没时间做扩展板,所以硬件稍麻烦一点,软件上实现更快一些。建议存储空间在4G以上,利用定时器控制,每隔100ms向SD卡保存一次数据。
    5、额外功能:既然在TFT上移植了emWIN,可以轻松实现其它一些小应用,比如简易计算器。

     

三、硬件设计       

   此设计最大限度的利用了本身开发平台,没有外扩资源,仅用了一个外部可调电阻,使用了定时器,ADC,串口,SPI等资源。硬件比较简单:
     
     
      主要设计在于软件。

四、软件设计   

软件采用的是标准固件库进行开发,使用的是MDKV5.13版本,跟以前相比,有一些变化。

     整个工程文件如下:
     
     
     在成功移植emWIN之前,要自己完成一些驱动。
     
有了这些,emwiN移植就比较容易了。工程文件截图:

使用的是最新的STemWIN5.26固件库,程序最主要的内容是GUI_APP文件,这个是多窗口和控件回调函数文件。因为使用了3个窗口,1个对话框窗口,多个控件,所以回调函数众多。这里仅截图部分,以说明:
1、创建状态窗口



      
2、状态窗口的回调函数
   
3、创建主窗口
     



4、主窗口的回调函数  
        
      




5、创建记录窗口:
      

     


6、记录窗口的回调函数

      

   
五、演示视频   
     
六、总结   

      通过此次对STM32F411RE的评估,看到了使用emWIN时,在STM32F1和STM32F4性能上的一些差异。通过软件的使用和摸索,也看到了使用标准固件库和CubeFX软件的差异。在ST大力推广 CubeFX的今天,逐步替换标准固件库也要慢慢启动了。
     下面是一些其他效果附图:
      
     
   


附件:
1、完整设计文档描述。
    【Nucleo设计分享】基于ST-emWIN的实时数据采集系统 .pdf (1.35 MB)
2、工程代码核心代码
    核心代码文件.rar (12.98 KB)
   

沙发
sun1238898| | 2015-2-27 17:14 | 只看该作者
很happy,做的很好的哦

使用特权

评论回复
板凳
fengye5340|  楼主 | 2015-2-28 12:07 | 只看该作者
sun1238898 发表于 2015-2-27 17:14
很happy,做的很好的哦

多谢支持:)

使用特权

评论回复
地板
zh113214| | 2015-2-28 14:30 | 只看该作者
不错的分享啊。。

使用特权

评论回复
5
powerful1| | 2015-2-28 15:11 | 只看该作者
很不错,谢谢分享

使用特权

评论回复
6
fengye5340|  楼主 | 2015-2-28 15:12 | 只看该作者
powerful1 发表于 2015-2-28 15:11
很不错,谢谢分享

谢谢

使用特权

评论回复
7
yyl830113| | 2015-3-1 19:14 | 只看该作者
GUI很给力!支持!

使用特权

评论回复
8
fengye5340|  楼主 | 2015-3-2 10:23 | 只看该作者
yyl830113 发表于 2015-3-1 19:14
GUI很给力!支持!

GUI很不错,就是控件很多,需要好好研究才行

使用特权

评论回复
9
fjjjnk1234| | 2015-3-2 13:38 | 只看该作者
顶一个!做得真不错!

使用特权

评论回复
10
zhanghuichun| | 2015-3-2 14:20 | 只看该作者

使用特权

评论回复
11
fengye5340|  楼主 | 2015-3-2 14:34 | 只看该作者
fjjjnk1234 发表于 2015-3-2 13:38
顶一个!做得真不错!

多谢支持

使用特权

评论回复
12
lvyunhua| | 2015-3-2 14:38 | 只看该作者
:lol,不错,学习了。

使用特权

评论回复
13
fengye5340|  楼主 | 2015-3-3 10:42 | 只看该作者
lvyunhua 发表于 2015-3-2 14:38
,不错,学习了。

多谢支持:handshake

使用特权

评论回复
14
hzpj01| | 2015-3-3 15:27 | 只看该作者
谢谢分享,最大采集速度是多少?

使用特权

评论回复
15
fengye5340|  楼主 | 2015-3-3 15:35 | 只看该作者
hzpj01 发表于 2015-3-3 15:27
谢谢分享,最大采集速度是多少?

自带ADC测试,最大2.4Msps,可以自己外扩一个高速AD,采用SPI接口通信

使用特权

评论回复
16
刘蒋123| | 2015-3-23 15:44 | 只看该作者
那天看你现场演示也是不错的,就是不知道你们那边有没有做图像处理模块这方面的

使用特权

评论回复
17
ticomi| | 2015-3-23 16:41 | 只看该作者
谢谢分享!

使用特权

评论回复
18
lsdavid| | 2015-3-24 09:10 | 只看该作者
多谢楼主分享!“通过软件的使用和摸索,也看到了使用标准固件库和CubeFX软件的差异”。请问你可否多说一下标准固件库和CubeFX软件的差异?

使用特权

评论回复
19
紫宸| | 2015-3-24 11:06 | 只看该作者
多谢楼主分享

使用特权

评论回复
20
ljl342301| | 2015-5-6 11:41 | 只看该作者
学习了,非常实用的设计

使用特权

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

本版积分规则

99

主题

454

帖子

11

粉丝