(软件06)串口屏的应用,让你的产品显得高级一点(下篇)

news2024/11/16 16:17:42

本文目录

  •   学习前言
  •   单片机代码实现

学习前言

        目前市面上我记得好像有IIC的屏幕、SPI的屏幕、并口屏幕、还有就是今天我们介绍的这个串口屏了,串口屏,就是用串口进行通讯的,上篇我们已经介绍了屏幕供应商提供的上位机软件进行配置好了,下面我们介绍一下用单片机是如何通过代码控制屏幕的。

单片机代码实现

        下面我将会用这张图来分别地介绍一下各个组件是怎么使用的。

        t9、t10、t18、t13、t0、t1 这些就是text的组件,一般用于固定显示文字或修改显示文字,比如说t0我会修改成关/开、t1我会修改成自动/手动;

        p2就是picture的组件,要先在上位机软件中加入了实际的图片才可以的,我定义p1是绿色的图片,p2是红色的图片;

        x1就是带小数的数字显示;

        n0这个没有截图到,实际是不带小数的整数显示;

        其他的组件也是大同小异的,有疑问的就可以去看下官方的手册,里面用法介绍得很清楚的。      

         关于串口的配置我就不多说了噢,可以看我之前的modbus介绍那些文章。

下面我直接距离说明我是怎么控制串口屏组件的:

        对于t0的组件,直接改写文字内容

	char aStr[100];
	
	if(mOnoff)
		sprintf(aStr,"t0.txt=\"开\"\xff\xff\xff");
	else
		sprintf(aStr,"t0.txt=\"关\"\xff\xff\xff");
	
	zj_app_HMI_send_string(aStr);

        对于p2的组件,发送图片的ID号,就能显示对应的图片了

	#define HMI_PIC_VALVE_ON			2
    #define HMI_PIC_VALVE_OFF			3

    char aStr[100];
	
	if(mOnoff)
		sprintf(aStr,"p2.pic=%d\xff\xff\xff",HMI_PIC_VALVE_OFF);
	else
		sprintf(aStr,"p2.pic=%d\xff\xff\xff",HMI_PIC_VALVE_ON);
	zj_app_HMI_send_string(aStr);

        对于x1的组件,直接改写文字内容,请注意,我发的是x100的值,也就是说我需要保留2个小数点,我发真实值x100过去,串口屏会/100后再显示两位小数点,我上位机配置了2位小数。

	char aStr[100];
	
	sprintf(aStr,"x1.val=%d\xff\xff\xff",zj_app_info.flow_x100_value);
	zj_app_HMI_send_string(aStr);

         对于n1的组件,直接把值发过去就行了。

	char aStr[100];

	sprintf(aStr,"n2.val=%d\xff\xff\xff",zj_app_info.index_percent);
	zj_app_HMI_send_string(aStr);

        以上就是单片机控制串口屏是全部内容了,很久没更新了,工作上的事情也是挺忙挺充实的,想了很久还是决定和大家分享技术的的入门教程啦。利他之心可不能丢掉!感谢大家的阅读量和关注,让我在分享的道路上又看到了希望。

小弟感谢大家的关注!

      (利他之心,原创分享)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1900944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

两年经验前端带你重学前端框架必会的ajax+node.js+webpack+git等技术的个人学习心得、作业及bug记录 Day1

黑马程序员前端AJAX入门到实战全套教程,包含学前端框架必会的(ajaxnode.jswebpackgit),一套全覆盖 Day1 你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​…

前端八股文 对$nextTick的理解

$nexttick是什么? 获取更新后的dom内容 为什么会有$nexttick ? vue的异步更新策略 (这也是vue的优化之一 要不然一修改数据就更新dom 会造成大量的dom更新 浪费性能) 这是因为 message (data)数据在发现变化的时候,vue 并不会立刻去更…

.mkp勒索病毒:深度解析与防范

引言: 在数字化时代,网络安全问题日益严峻,其中勒索病毒作为一种极具破坏性的恶意软件,严重威胁着个人用户和企业机构的数据安全。在众多勒索病毒家族中,.mkp勒索病毒以其强大的加密能力和广泛的传播方式,成…

54、一维和二维自组织映射(matlab)

1、一维和二维自组织映射原理 一维和二维自组织映射(Self-Organizing Maps, SOM)是一种无监督的机器学习算法,通过学习输入数据的拓扑结构,将高维输入数据映射到低维的网格结构中,使得相似的输入数据点在映射空间中也…

异步调用 - 初识

目录 1、引入 2、同步调用 2.1、例子:支付功能 2.2、同步调用的好处 2.3、同步调用的缺点 3、异步调用 3.1、异步调用的方式 3.2、异步调用的优势 3.3、异步调用的缺点 3.4、什么场景下使用异步调用 3.5、MQ技术选型 1、引入 为什么想要异步通信呢&…

java 线程同步机制 synchronized

synchronized 代码块 的参数 为对象 且要唯一性 synchronized 修饰方法: 非静态是 当前类的实例 this 静态是当前类 :当前类名.class Cclass.class extends有多实例 不能用this 。 用当前类作为唯一标识 synchronized 优缺点

vue3项目图片压缩+rem+自动重启等plugin使用与打包配置

一、Svg配置 每次引入一张 SVG 图片都需要写一次相对路径,并且对 SVG 图片进行压缩优化也不够方便。 vite-svg-loader插件加载SVG文件作为Vue组件,使用SVGO进行优化。 插件网站https://www.npmjs.com/package/vite-svg-loader 1. 安装 pnpm i vite-svg…

查询数据库下所有表的数据量

个人思路: 首先把库里Schema下表名拿出来放记事本(EmEditor)里, 用一下正则匹配替换 (\w) → select \1 tableName,count(1) from \1 union all 然后把最后的union all删除掉,替换为order by tableName

eggNOG-mapper:功能注释集大成者

安装 Home eggnogdb/eggnog-mapper Wiki GitHub git clone https://github.com/eggnogdb/eggnog-mapper.git cd eggnog-mapper python setup.py install # 如果您的 eggnog-mapper 路径是/home/user/eggnog-mapper export PATH/home/user/eggnog-mapper:/home/user/eggnog-…

基于OpenCv的快速图片颜色交换,轻松实现图片背景更换

图片颜色更换 图片颜色转换 当我们有2张图片,很喜欢第一张图片的颜色,第2张图片的前景照片,很多时候我们需要PS进行图片的颜色转换,这当然需要我们有强大的PS功底,当然小编这里不是介绍PS的,我们使用代码完全可以代替PS 进行图片的颜色转换 图片颜色转换步骤: 步骤…

MongoDB 单节点升级为副本集高可用集群(1主1从1仲裁)

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等) 公众号:老苏畅谈运维 欢迎关注本人公众号,更多精彩与您分享…

沪上繁花:上海电信的5G-A之跃

2024年6月18日下午,在上海举行的3GPP RAN第104次会议上,3GPP正式宣布R18标准冻结。R18是无线网络面向5G-A的第一个版本,其成功冻结正式宣布了5G发展迎来新机遇,5G-A商用已进入全新的发展阶段。 在5G-A滚滚而来的时代洪流中&#x…

【88 backtrader期货策略】一个基于螺纹钢和铁矿5分钟K线数据的跨品种日内套利策略回测

这是参考其他量化框架的跨品种套利策略并进行修改逻辑后实现的一个交易策略。花了小半天时间,核对了策略逻辑的细节,两者的资金曲线基本是可以对齐了。 提醒 这个统计套利策略回测的时候,有几个坑,会导致实盘和回测的结果出现比较大的差异。在后续文章中,我将分析为什么…

【3D->2D转换(1)】LSS(提升,投放,捕捉)

Lift, Splat, Shoot 这是一个端到端架构,直接从任意数量的摄像头数据提取给定图像场景的鸟瞰图表示。将每个图像分别“提升(lift)”到每个摄像头的视锥(frustum),然后将所有视锥“投放(splat&a…

Spring相关面试题(四)

49 JavaConfig方式如何启用AOP?如何强制使用cglib? 在JavaConfig类,加上EnableAspectJAutoProxy 如果要强制使用CGLIB动态代理 ,加上(proxyTargetClass true) 加上(exposeProxy true) 就是将对象暴露到线程池中。 50 介绍AOP在Spring中…

word文档没有保存就关闭了怎么恢复?找到正确的方法

昨天写教程的时候,终于完成了一个word文档,以为保存了就直接关了。word提醒我“是否保存”,我直接忽略了。动作一气呵成,毫不犹豫的关闭了。之后才发现我没有保存word文档。这种情况大家有遇到过吗?我们该如何在没有保存的情况下…

unix高级编程系列之文件I/O

背景 作为linux 开发者,我们不可避免会接触到文件编程。比如通过文件记录程序配置参数,通过字符设备与外设进行通信。因此作为合格的linux开发者,一定要熟练掌握文件编程。在文件编程中,我们一般会有两类接口函数:标准…

原生JavaScript实现录屏功能

1. 前言 使用JavaScript实现浏览器中打开系统录屏功能 示例图: 2. 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><…

关于CPU你一定要注意的重要参数,警惕韭菜陷阱

昨天遇到个奇葩事&#xff0c;有个粉丝喷我“懂不懂什么叫I9&#xff1f;”言下之意就是CPU中I9>i7>I5>I3&#xff0c;我也不知道咋说&#xff0c;只是提醒大家小心被坑&#xff0c;花了多的钱用的差的性能。作为回应&#xff0c;仅以此篇说下CPU咱们臭打游戏一定要知…

软件架构之计算机组成与体系结构

1.1计算机系统组成 计算机系统是一个硬件和软件的综合体&#xff0c;可以把它看成按功能划分的多级层次结构。 1.1.1 计算机硬件的组成 硬件通常是指一切看得见&#xff0c;摸得到的设备实体。原始的冯•诺依曼&#xff08;VonNeumann&#xff09;计算机在结构上是以运算器为…