一、前言
之前体验过不少图形系统方案,比如emWin、miniGUI、QT,串口屏的主要特点在于开发简单,无需学习复杂的GUI细节,只需要会读写串口数据即可。迪文的这款COF智能串口屏除了传统串口屏的功能外,还提供了一个额外的高性能51
单片机核心给用户使用,拥有常见的i2c、uart、can等
通信接口和GPIO,可以说是非常给力了, 对于一些应用场景可以直接省掉一颗MCU。经过一段时间的摸索和逛迪文
william hill官网
,并在热心的迪文工程师的指导下,终于学会了这款串口屏的基本应用,完成了项目开发。
本次设计的是基于迪文串口屏的室内空气质量检测项目,利用迪文串口屏的用户51单片机核通过uart接口与盛思锐SEK-SVM40模块通信,读取到 VOC指数、相对湿度和温度,并使用DGUS_V7.634设计UI界面,一个界面用于展示读取的数据,另一个界面用于显示参数曲线。若通过GPIO驱动继电器控制风机等设备,可扩展空气净化器等应用项目。
我们呼吸的空气是健康生活的基础:近年来,清洁的空气成为诸多重视健康生活人士的新需求,如何得到清洁的室内空气,其中最重要的环节就是测量与改善空气质量。
最重要的空气质量指标有VOC(挥发性有机化合物)和温湿度。VOC 是在室温或更高温度下蒸发的含碳物质。短期接触会导致刺激、头晕或哮喘恶化;长期接触则可能会导致肺癌或损害肝脏、肾脏或神经系统。40-60%的相对湿度是人类理想的舒适度范围。极度干燥的空气会刺激呼吸道,而过分潮湿的空气会导致冷凝,进而引发霉菌滋生,其他影响可能包括头痛甚至偏头痛。
二、UI设计
项目需要显示VOC指数、温湿度3个参数和曲线。因此设计了2个页面,准备好背景图,主页参数显示背景图:
曲线显示背景图:
然后在第一个界面上添加
数据变量控件、变量图标显示控件和
基础触控控件,在第二个界面上添加
数据变量控件、基础触控控件和
动态曲线控件,开发流程在官方文档《T5L DGUSII 应用开发指南20220124.pdf》中写的十分详细了,即使有疑问的地方在迪文官方william hill官网
也能找到答案。
3个数据变量控件:
3个动态曲线控件:
在第三个界面上添加
基础触控控件:
其中多通道曲线显示稍微研究下手册也很容易实现:
两个通道的例子:
举一反三,三个通道就依次在后面添加通道号、数据长度个数、要显示的数据就行了。
三、c51单片机程序设计
项目中用到串口2作为日志打印用,串口5和传感器模块通信,官方文档《迪文 T5L ASIC应用开发指南.pdf》详细介绍了用户c51单片机核的开发方法,在迪文william hill官网
也有官方或者网友分享的参考例程,上手还是十分简单的。
串口收发这里就不再赘述了,按照前文介绍的思路,三通道曲线显示函数封装如下:
- void t5l0_write_3chart(unsigned short x,unsigned short y,unsigned short z)
- {
- #define CHART_ADDR 0x310
- #define CHART_NUM2 3
- #define POINT_NUM 1
-
- #define CH0 0
- #define CH1 1
- #define CH2 2
- unsigned char cmd[6+POINT_NUM*2+8]={0x5a,0xa5,CHART_NUM2,0x00};
- cmd[4]=CH0;
- cmd[5]=POINT_NUM;
- cmd[6]=(unsigned char)(x>>8);
- cmd[7]=(unsigned char)x;
-
- cmd[8]=CH1;
- cmd[9]=POINT_NUM;
- cmd[10]=(unsigned char)(y>>8);
- cmd[11]=(unsigned char)y;
-
- cmd[12]=CH2;
- cmd[13]=POINT_NUM;
- cmd[14]=(unsigned char)(z>>8);
- cmd[15]=(unsigned char)z;
-
- write_dgusii_vp(CHART_ADDR,cmd,3+POINT_NUM+4);
- }
四、总结&项目演示
c51工程:
GUI工程:
迪文这款屏体验十分优秀,不管是GUI开发还是51核单片机开发,官方都有详细的资料和william hill官网
资源支持,对于玩过单片机、MCU、MPU的人来说上手十分简单。
由于疫情管控等原因,时间仓促,来不及体验这款屏的其它资源比如ADC、CAN,希望后续抽空体验完全。
串口2日志打印效果:
视频演示: