【开源】基于温控器的T5L C语言开源项目分享
基于温控器的C语言开发,就是把温控器作为一个强大的单片机,不仅能够主要采集获取传感器数据,进行复杂的逻辑处理,而且还能在屏上进行人机对话;相对我们传统的开发,这种开发有明显的两大优势:优势一:安全,快速。因为传统的0x5A A5开发是通过串口传输,往往会出现波特率、硬件电平、干扰等问题;而这种内核方式,只要按照dwin的格式设计,不会出现以上问题。优势二:便捷,便宜。因为传统开发,往往自己还要设计单片机电路,外加迪文屏,成品还要考虑外壳等一系列问题;而温控器是迪文的标准产品,稳定可靠,比自己设计更加快捷,便宜,普通场景不需外加单片机。
温控器:TC040C11W04特点: - 4.0寸IPS屏,分辨率480*480,满足绝大多数场景需求,特别适合智能家居;
- 1路485,主从模式都能定义,适应场景比较广,理论可以接入32个从机设备;
- nor Flash 320k,方便进行用户数据存储,以及历史数据存储;
- 蜂鸣器,可以播放音乐,以及报警作用;
- 背光可以调节;
- 支持温度测量。
论坛上资源比较多,本人就针对T5l C开发的详细过程,用来分享,DWIN屏工程以及keil代码我会放在附件,欢迎大家下载学习。
第一块初始化:初始化包含系统外设初始化以及用户参数初始化。 - 系统外设初始化:系统时钟,IO口,看门口,定时器,以及串口;
- 用户参数初始化: 系统全局的变量初始化,因为未加载22号文件,所以系统变量不一定都是0, 以及读取存储flash,用户需要保存的数据。
第二块主函数:主函数主要的作用: - 处理息屏,定时时间到,关闭背光,软件控制,需要把CFG的功能关闭;
- 解码485数据,根据协议解码,成功后显示再迪文屏;
- 迪文屏主机模式,请求485的数据;
- 处理DWIN按钮触发的数据。
第三块串口细节 - 发送细节比较简单,不做介绍,需要主要的是串口5是485,P0.1是方向使能,别忘记这个;
- 针对接收部分,网上方法很多,有用循环数据;这边采用的是比较简单的超时功能;
- 需要注意的是 deal_uart5_buff放入1ms定时器里面计时,一般9600的波特率,建议用40ms,考虑对方发送数据不连续。
第四块串口解码以及屏显示部分
- 解码:收到完整的一帧数据,receive_finish_flag标志会变成1,然后根据协议解码deal_uart5_Rx[];
- 显示: write_dgus_vp 此函数内核函数,详细了解源码。
第五块DWIN屏触发下发控制 - 读取对应的变量地址;
- 情况变量地址的数据;
- 执行自己的控制逻辑。
第六块调试技巧
- 第一种就是先在支持仿真调试的屏上,先把自己的程序运行,调试。最后移植到产品上;
- 第二种就是串口打印出数据,效率比较低,但是也最能提高我们的能力。
|