【开源串口屏方案】五步教你设计串口屏,5分钟快速上手

这篇具有很好参考价值的文章主要介绍了【开源串口屏方案】五步教你设计串口屏,5分钟快速上手。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

  • 前言
  • 一、什么是串口屏?
  • 二、串口屏原理与组成
  • 三、硬件制作
  • 四、实现方法
    • 1.硬件设备
    • 2.环境依赖
    • 3.界面设计
    • 4.编写串口通信代码和示例 

前言

本文详细介绍串口屏原理、设计方法、实现步骤,给出完整代码实例,30分钟即可完成串口屏的设计使用。适合初学者快速上手。


一、什么串口屏?

串口屏是一种能够通过串行接口接收指令,并进行显示控制的液晶显示屏。它的主要优点是操作简单,接口统一,用GUI软件进行界面的快速编写与设计。

diy 串口屏,嵌入式硬件,人机交互,stm32,开源,单片机,硬件工程,开源软件

二、串口屏原理与组成

串口屏的组成部分:

1.显示屏:这是串口屏的核心部分,可以选择液晶显示屏或其他类型的显示屏.
2.微控制器:这是控制显示屏的关键部分。它可以接收和发送数据,控制显示屏的显示内
容。
3.串口通信接口: 这是微控制器和显示屏之间的通信接口。通常使用UART (通用异步收
发器) 接口。
4.电源:为显示屏和微控制器提供电源
5.嵌入式GUI软件: 采用高通GT-HMI,可以作为上位机Designer和下位机Engine的开源设计工具,帮助用户设计和实现自己的界面。

三、硬件制作

在高通GT-HMI官网上获取串口屏原理图,可参考制作自己的串口屏硬件。

 

 四、实现方法

以GT-HMI显示模块为例,这是一个做好的串口屏板子,包含开源的软硬件。只需几个步骤就可以实现串口屏的控制。您将需要以下准备:(连接步骤部分可以增加简单的示意图,辅助说明)

1. 硬件设备:

GT-HMI显示模块、一根USB转UART转接线、一台电脑,笔记本和台式机均可。   首先将USB转UART转接线连接到我们的GT-HMI显示模块上,然后将USB转UART转接线与您的电脑连接。

2. 环境依赖:

软件环境:KEIL5, 串口调试助手。硬件环境:USB转UART转接线,GTC-480272TFT43XP.

3. 界面设计:

在高通GT-HMI Designer设计界面,可以参考GT-HMI视频教程及文档资料。

4. 编写串口通信代码,示例如下:

1、串口uart3初始化:

  • void bsp_uart3_init(void)
  • {
  •     UART_InitStructure UART_initStruct;
  •     PORT_Init(UART3_RX_PORT, UART3_RX_PIN, UART3_RX_SEL, 1); //GPIOM.0配置为UART0输入引脚
  •     PORT_Init(UART3_TX_PORT, UART3_TX_PIN, UART3_TX_SEL, 0); //GPIOM.1配置为UART0输出引脚
  •     UART_initStruct.Baudrate = UART3_Baudrate;  //波特率
  •     UART_initStruct.DataBits = UART_DATA_8BIT;  //8位数据位
  •     UART_initStruct.Parity = UART_PARITY_NONE;  //无校验位
  •     UART_initStruct.StopBits = UART_STOP_1BIT;  //1个停止位
  •     UART_initStruct.RXThreshold = _UART3_RX_BUFFER_SIZE;//设置FIFO个数
  • UART_initStruct.RXThresholdIEn = 1;//使能接收中断
  • UART_initStruct.TXThreshold = _UART3_Threshold_Size;//设置FIFO个数
  • UART_initStruct.TXThresholdIEn = 0;     //失能发送中断
  • UART_initStruct.TimeoutTime = 10; //10个字符时间内未接收到新的数据则触发超时中断
  • UART_initStruct.TimeoutIEn = 1;         //使能超时中断
  •     UART_Init(UART3, &UART_initStruct);
  •     UART3->TOCR &= ~(1 << UART_TOCR_MODE_Pos);  
  •     UART_Open(UART3);//开启uart3
  • }

2:串口数据通过中断接收,接收数据的部分

void UART3_Handler(void)

{

    char count = _UART3_Threshold_Size;

    char i=0;

    uint32_t chr ;

    if(UART_INTStat(UART3, UART_IT_RX_THR))//接收中断

    {

        UART_INTClr(UART3, UART_IT_RX_THR);//清除接收中断标志位

        while (count--)//FIFO个数接收数据

        {

if(UART_ReadByte(UART3, &chr) == 0)//接收数据

            {

                if(_uart3_count < _UART3_RX_BUFFER_SIZE)

                {

                    _uart3_rx_buf[_uart3_count] = chr;

                    //接收到的数据存在这个全局变量数组内

                    UART_BUF[_uart3_count] = chr;

                    _uart3_count++;//数组下标自增

                }

            }

        }

}

接收数据并进行相应的数据显示

/***********************

**数据包格式:头(0xAA)+设备启动状态+间隔时间+重复次数+工作温度+等待速度+包长度+校验和

**设备启动状态:0x0、0x1

**间隔时间:1~30

**重复次数:1~10

**工作温度:10~100

**等待速度:0~100

***********************/

void Refresh_New_Page(unsigned char *data)

{

unsigned char verify=0 ,i=0;

for ( i = 0; i < data[6]-1; i++)//计算接收到的数据校验和。

{

verify += data[i];

}

if(data[0] == 0xaa && verify == data[7])//判断帧头(0xAA)和校验和均是和接收数据符合。

{

if(data[1]==1)//设备启动

{

gt_obj_set_state(switch1, 1);

}else if(data[1]==0)

{

gt_obj_set_state(switch1, 0);//设备关闭

}

gt_input_number_set_value(inputNum1, data[2]);//设置间隔时间

gt_input_number_set_value(inputNum2,data[3]);//设置重复次数

gt_input_number_set_value(inputNum3,data[4]);//设置重复次数

gt_slider_set_pos(slider1, data[5]);

gt_disp_load_scr(screen_home);

}

}

3. 下载程序,运行示例

int main(void)

SystemInit();//mcu系统初始化

__enable_irq();//使能中断

bsp_uart0_init();//uart0初始化

bsp_uart3_init();//uart3初始化

bsp_sfc_config(1);//存储芯片读取配置

bsp_lcd_rgb_init();//rgb接口屏显配置

systick_init();//systick时钟配置

TP_Init();//时钟I2C初始化

TIMR_Init(TIMR4, TIMR_MODE_TIMER, CyclesPerUs, 1000, 1);//定时器初始化

TIMR_Start(TIMR4);//启动定时器

GT_Font_Init();//字库初始化

gt_init();

gt_ui_init();

while (1) {

gt_task_handler();//gt-hmi engine 任务调度

swm_delay_ms(1);

// WDT_Feed(WDT);

if(uart_status)//uart3串口数据接收完标记

{

uart_status=0;

Refresh_New_Page(UART_BUF); //处理串口数据将串口数据显示到对应的屏上面。

memset(UART_BUF,0,8);

}

#if _RUNNING_PRINT

if (_cnt >= 1000) {

_cnt = 0;

GT_LOGI(GT_LOG_TAG_TEST, "tick: %d s", gt_tick_get() / 1000);

}

#endif

}

}

diy 串口屏,嵌入式硬件,人机交互,stm32,开源,单片机,硬件工程,开源软件

4、程序下载到高通GTC-480272TFT43XP 显示模块效果:

串口屏初始界面:

diy 串口屏,嵌入式硬件,人机交互,stm32,开源,单片机,硬件工程,开源软件

串口助手发送如下图命令:

diy 串口屏,嵌入式硬件,人机交互,stm32,开源,单片机,硬件工程,开源软件

发送命令之后显示的界面:

diy 串口屏,嵌入式硬件,人机交互,stm32,开源,单片机,硬件工程,开源软件

 发送的数据为AA 01 02 01 38 37 08 25 (发送数据格式:头(0xAA)+设备启动状态+间隔时间+重复次数+工作温度+等待速度+包长度+校验和)其中第二个数据“01”代表设备启动状态,我们可以考到设备启动开关被打开,第三个数据”02”代表间隔时间,我们可以看到间隔时间被设置成2min, 第四个数据工作温度“38”是16进制的,换算成10进制就是56,我们可以看到工作温度被改成56。

测试命令:AA 01 02 08 46 54 08 57

我们再次发送测试命令,可以看到其中重复次数和工作温度都被改变了。

diy 串口屏,嵌入式硬件,人机交互,stm32,开源,单片机,硬件工程,开源软件

总结

您可以尝试自己制作串口屏硬件,或者使用高通GT-HMI开发板/显示模块。我们提供了相应的软硬件资料供您参考。您需要注意的是,制作硬件需要一定的电子技术知识。
如果您是初学者,我们建议您先从使用高通的开发板开始。利用高通GT-HMI开发框架,您也可以快速实现串口屏的显示控制。欢迎分享您的创作经验!文章来源地址https://www.toymoban.com/news/detail-743823.html

到了这里,关于【开源串口屏方案】五步教你设计串口屏,5分钟快速上手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 几步教你安装 Android x86

    几步教你安装 Android x86 Android x86 是一个开源项目,旨在将 Android 操作系统移植到 x86 架构的计算机上。通过安装 Android x86,你可以在电脑上体验 Android 的各种功能和应用程序。本文将介绍如何安装 Android x86,并提供相应的源代码。 第一步:准备工作 首先,你需要下载 Androi

    2024年02月06日
    浏览(34)
  • 教你用五步让千年的兵马俑跳上现代的科目三?

    教你用五步让千年的兵马俑跳上现代的舞蹈科目三? 上面这个“科目三”的视频,只用了一张我上月去西安拍的兵马俑照片生成的。 使用通义千问,只要5步就能它舞动起来,跳上现在流行的“科目三”舞蹈。 第1步 打开通义千问App,我使用的是华为手机,苹果版的没试;

    2024年01月16日
    浏览(22)
  • 四步教你彻底关闭Win10自动更新

    目录 一、禁用Windows Update服务 二、在组策略里关闭Win10自动更新相关服务 三、禁用任务计划里边的Win10自动更新 ​编辑四、在注册表中关闭Win10自动更新 一、禁用Windows Update服务     win+R调出运行     services.msc         Windows Update      停止     禁用       恢复     重新

    2024年02月13日
    浏览(25)
  • 6步教你轻松画出流程图

    推荐一款好用的思维导图软件:ProcessOn思维导图,只需简单6步即可完成流程图。 ProcessOn是一款强大的思维导图软件,它可以帮助用户轻松地绘制出各种类型的流程图。下面是使用ProcessOn绘制流程图的六个简单步骤: 第一步: 打开ProcessOn软件并创建一个新的画布 。在Process

    2024年02月05日
    浏览(34)
  • 三步教你轻松安装配置 Linux Anaconda 环境

    1.进入Anaconda官网获取下载链接: 2.远程拉取安装脚本 1.运行脚本 之后按照提示回答相应问题即可(有选项的都是填 yes,阅读协议使用空格跳过,有回车的按回车) 2.配置生效 配置文件 .condarc 在用户的家目录(windows: C:\\\\users\\\\username\\\\ ,linux: /home/username/ )。但对于 .cond

    2024年02月09日
    浏览(39)
  • ChatGPT“保姆级教程”——手把手教你5分钟快速AI智能文字转爆款视频(剪映+百度AIGC平台)

    在这个数字时代,视频已经成为了最流行的内容形式之一。而如何自动将文字转化为引人注目的视频内容呢?本教程将为你提供两个不同的方法:一个是利用ChatGPT和剪映,另一个是利用ChatGPT和百度AIGC平台。无论你是一名内容创作者、社交媒体经营者还是企业营销人员,都会

    2024年02月09日
    浏览(72)
  • 20分钟了解物联网开源数据库部署解决方案

    本文针对物联网数据存储提供解决方案的思路,项目特点:结构化数据、传感器节点多(100)、传感器类型多(30)、采样频率高(1HZ),在此背景下,一般的关系型数据库已经不能够支撑数据存储,基于免费开源的软件完成数据存储工作,提高数据的读写能力。 1)多源异构

    2023年04月11日
    浏览(28)
  • 6步教你封杀恶意登录服务器的ip

    Jun 5 10:25:56 localhost sshd[10165]: pam_unix(sshd:session): session opened for user root by (uid= Jun 5 10:25:59 localhost sshd[10184]: Accepted password for root from 192.168.10.1 port 58528 ssh2 Jun 5 10:25:59 localhost sshd[10184]: pam_unix(sshd:session): session opened for user root by (uid= Jun 5 12:51:19 localhost sshd[10394]: Accepted password for r

    2024年04月28日
    浏览(19)
  • Android一步一步教你实现Emoji表情键盘

    背景: 说到聊天,就离不开文字、表情和图片,表情和图片增加了聊天的趣味性,让原本无聊的文字瞬间用表情动了起来,今天给大家带来的是表情键盘,教你一步一步实现,先来看下效果图: 效果图 功能: 1、如何控制表情键盘与输入法的切换 2、如何解析表情 3、如何处

    2024年02月16日
    浏览(30)
  • Python 一步一步教你用pyglet制作汉诺塔游戏

    目录 汉诺塔游戏 1. 抓取颜色 2. 绘制圆盘 3. 九层汉塔 4. 绘制塔架 5. 叠加圆盘 6. 游戏框架   汉诺塔(Tower of Hanoi),是一个源于印度古老传说的益智玩具。这个传说讲述了大梵天创造世界的时候,他做了三根金刚石柱子,并在其中一根柱子上从下往上按照大小顺序摞着64片黄

    2024年03月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包