STM32与串口屏交互(USART HMI)

  • 一、前期准备
  • 二、串口屏上位机使用方法以及界面设计
  • 三、STM32软件编程
  • 四、单片机发送数据的字符串指令汇总
  • 五、总结

不管是备战电赛还是准备毕设,一块能与单片机交互的屏幕显得尤为重要,相较于传统的SPI,IIC通信的0.96寸OLED还是管脚较多的TFT屏幕,串口屏综合了以上屏幕的特点,即尺寸大、管脚少,能够充分减少占用单片机的I/O资源,且支持触摸。
串口屏可作为输出设备(显示)以及输入设备(按键),开发难度小,操作简单,软件要求低且拥有专门的上位机辅助开发。

一、前期准备

1. USB TO TTL模块

串口屏顾名思义是通过串口通信的方式来实现数据的传输,所以我们要准备一个USB TO TTL模块。作用是用来上位机(电脑)与串口屏的通讯。
2.STM32单片机(以stm32f103c8t6为例)
3.HMI USART串口屏
本人使用使用的是陶晶驰的串口屏。型号为TJC4832T135_011

电阻式触摸屏比电容式体验效果稍差一点不过并无大碍,3.5寸的屏幕尺寸足够我们的项目需求。人机交互时,大小也正合适。串口屏共有4根线分别是5V、TX、RX、GND.当串口屏与上位机通讯时串口屏的RX接USB转TTL模块的TXD,串口屏的TX接串口模块的RX。当串口屏与单片机(stm32f103c8t6)通讯时,我们要软件配置使用哪个串口从而决定硬件连接。
若使用USART1
RX------------PA9
TX------------PA10
若使用USART2
RX------------PA2
TX------------PA3
若使用USART3
RX------------PB10
TX------------PB11

二、串口屏上位机使用方法以及界面设计

当我们在做小项目时,我们要根据项目的需求去设计对应的界面。以达到我们预期的效果。我们使用官方给出的上位机USART HMI软件去设计界面。

上位机下载:USART HMI 资料中心

(1)打开USART HMI 软件,点击新建
这里需要我们选择对应串口屏的型号,本人的是TJC4832T135_011。
显示方向我们一般默认90(横屏)。串口屏默认波特率为9600。如需要改变请查阅资料编写代码。
(2)从工具箱中拖需要使用的组件。比较常用就是文本、按钮,曲线等。去设计我们想要的界面例如背景色,控件的大小等等。
(3)点击软件左上方工具按钮,我们要提前导入字体也就是字库制作,我们选择我们想要的字体以及大小即可以生成字库。每生成一个字库并且添加到工程中都会有一个字体ID。
(4)当我们使用文本或者数字控件时,我们需要不同的字体或大小时,我们可以再右下角属性一栏中修改font参数,修改为你需要的字体ID即可。如下图所示:

(5)我们可以在软件的右上角页面加入新的界面,通过按钮来实现页面的切换。这里我们需要查阅软件中最上方帮助中的指令集以及资料中心,在软件中写所需要的代码。(很短,很容易上手)
(6)上位机编程中常用的指令汇总(实现小项目绰绰有余)
eg:
切换页面: page 页面名称 (page page1)即切换到page1页面
发送十六进制指令 : printh 01 即发送0x01
两者相结合即可完成我们独立按键的功能。

以19年电赛D题简易电路特性测试仪为例
初步设计首页如下:

首页只添加了3个按钮控件和一个文本控件。文本控件显示我们本次工程的名称,而按键就可控制我们的模式选择。所以我们需要添加3个子页面(测量模式,故障测试模式,幅频特性曲线显示模式)通过主页面的按键来切换页面。所以在主页面下分别点击对应按钮控件,下方会出现事件界面,我们通常在弹起事件中做操作,也可以达到一个防误触的效果。如下图所示,我们在事件内容中写了两行代码。
1.printh 01 即点击该按钮串口屏就会发送0x01(有大作用,我们可以在单片机串口中断中解析该数据,并做相应的操作。具体示例在单片机编程部分)
2page page0 即点击该按钮切换到page 0页面


但我们在切换的页面后如何返回呢?

其实我们的整个界面就如同一个按钮一样,也有弹起操作。那我们要返回主页面是不是就要点击子页面的整个页面,而后在其弹起事件中编写page main即可实现返回的操作。
重要提醒:❗❗❗ 如果我们的文本控件默认设置的是私有变量,那我们切换界面时其显示的文本为你初始的文本。所以我们与单片机通信使其显示数值的文本控件应设置为全局变量(如下图t3,t4,t5文本控件)。这样我们切换页面时数据就不会丢失。
我们尽量将显示的固定文字在上位机中设计完成,单片机和串口屏之间尽量不要传汉字,那样占用资源而且容易出错。

到此上位机所要干的事情我们都已经做完了。当然上位机中还有很多好玩的控件,待网友们去开发去尝试。串口屏可谓功能之强大。

三、STM32软件编程

stm32软件部分总体分为发送数据接收数据
发送数据

既然我们要发送数据我们就要符合相应的通讯协议,在我们发送数据,总要有个结尾标志,如果没有的话单片机就不知道你的数据发没发送完,从而卡死出不来。

STM32与串口屏交互(USART HMI)相关推荐

  1. STM32驱动串口屏,STM32F103C8T6串口发送指令控制HMI串口屏

    STM32驱动串口屏,STM32F103C8T6串口发送指令控制HMI串口屏 串口屏 基础指令集 硬件和接线 接线 实验前准备 STM32程序 串口程序 主函数 实验现象 总结 串口屏 串口屏是一个集 ...

  2. 串口屏之------Usart GPU 使用手册

    串口屏之------Usart GPU 使用手册转载于http://www.cnblogs.com/1hua1ye/p/3977920.html Usart GPU 使用手册 文档更新日期 更新内容 ...

  3. 我的stm32学习——串口屏的使用

    一.前言 本来打算来学校前写这篇博客,拖拖拉拉拖到现在,开学都3天了,终于在星期四的凌晨敲下了这一行字,本篇博客记录开发串口屏的心得,望大佬指点. 我买的是3.2寸的陶晶驰串口屏,其分辨率为400*2 ...

  4. stm32连接串口屏HF043

    前言 我们先来看下串口屏,下图: 可以看到串口屏接线只需四根,就可以实现对屏幕的控制.我在某宝购买的型号HF043串口屏,价格80多,我加了demo板,其实只需要买屏和线就够了,一定要有USB转TTL ...

  5. USART HMI智能串口屏与单片机双向通讯

    目录 ·HMI串口屏介绍 ·HMI串口屏开发实操 ·准备 ·界面认识 ·写命令 ·下载 ·HMI串口屏与单片机(stm32)双向通信 [ 功能实现: STM32控制串口屏对应的数值.文本完成相应变化 ...

  6. 连接串口_气压计PTB330连接HMI串口屏

    本篇约1700字10图 分享人:张彦飞 (菏泽) ---全文概述 这是一篇"小创造"的开发经验分享. 在用振筒气压仪故障,购买新气压显示仪器的申请迟迟未通过,聪明的机务员巧用备件, ...

  7. STM32串口屏应用

    今天搞到一块串口屏,真的是打开了一个新世界的大门.不禁感慨,这么好的东西,怎么现在才知道呢,悔了悔了. 型号TJC4827T043_011. 一开始上手的时候一脸闷逼,这玩意怎么用.但是这块屏的资料很 ...

  8. 陶晶驰stm32_陶晶驰HMI3.5寸串口屏的详解之梳理F4总结系列准备篇(二)

    基于stm32的串口屏教程.用过的人都说好,哈哈哈,减少了我们很多不太必要的麻烦步骤. 程序资料包CSDN下载地址:https://download.csdn.net/download/qq_3835 ...

  9. 【我的电赛日记(一)】HMI USART串口屏

    HMI USART串口屏 作为在电赛中负责软件部分的成员,学会使用单片机进行数据和信息的显示是必要的,大部分人会选择使用oled或者TFT屏幕去进行显示,但是使用过的人都知道这样会比较复杂,会加大程序 ...

最新文章

  1. Cadence入门笔记(2):分裂元件的制作方法
  2. 在IT的世界里,分享是一种快乐.
  3. 涨姿势 | 服务重启后,为什么发生抖动?
  4. BASIC-4 数列特征
  5. 基于Win10极简SonarQube C#代码质量分析
  6. Kinect开发笔记之五使用PowerShell控制Kinect
  7. icmp协议介绍,type code 对应表
  8. 你觉得你非常了解Javascript?
  9. tensorflow 2.X中构建模型的三种方式:Sequential, Functional, Subclassing
  10. 大数据监控大屏系统,有这些demo就足够了!
  11. 如何在EXCEL里画正态分布图
  12. eve-ng 2.0.3-112懒人版安装、GNS3 2.2.32安装包、思科ASA8.42 9.42 路由器C3600 C7200、IOU镜像、思科IPS入侵防御系统
  13. Linux趣味小游戏,嘟嘟嘟,小火车来了
  14. ipad/iphone内存管理二
  15. Socket究竟是干什么的?
  16. 【超详细】对比10种优化函数BGD、SGD、mini-batch GD、Momentum、NAG、Adagrad、RMSProp、Adadelta、Adam、AMSgrad
  17. Elasticsearch:运用 Java 创建索引并写入数据
  18. poj 1583 Choose Your Words Carefully
  19. 1000以内完数Java程序
  20. 用Arduino实现精准电池电量电压指示器

热门文章

  1. K8S-5--云原生基础/k8s基础及组件/二进制部署k8s集群
  2. PS2021安装方法(附个人详细安装教程)
  3. 姜小白的Python日记Day7 文件的读写
  4. make makefile cmake qmake都是什么,有什么区别
  5. 他,1年9个月获清华博士学位,一作身份发27篇SCI,组队击败NASA打破“航天奥林匹克”欧美垄断...
  6. 赋能数字化生命力,让企业未来焕发青春
  7. iOS 查看Realm数据库表
  8. POI之Excel单元格样式
  9. Java多线程,并发核心知识体系总结
  10. Latex改变图片、表格标题字号