简介

        最近开发一款基于STM32检测时钟芯片的测试台,需要将时钟芯片的实时时间显示出来。设计过程中,考虑到方便使用,需要使用一款屏幕用于显示时间。前期项目剩余一些淘晶驰串口屏(前任工程师选屏剩余未使用),就拿来用到了这次的测试台上。淘晶驰官方网站提供了UI设计软件,且哔哩哔哩上有教程视频,此处不做过多说明。

项目说明

测试台主要用于时钟芯片精度检测,项目中需要将多个时钟芯片时间显示到串口屏上,预留串口用于时钟同步。

帮助手册避坑

对于串口屏,初步学习了下官方手册上如何将图片转换成UI界面,如何对txt控件进行赋值,没用进行深入学习。

先附图USART HMI软件上帮助文件如何赋值txt控件:

根据手册1.1文本控件显示说明,在t0处显示时间信息串口发送格式为:

uint8_t ucHMIEnd[3] = {0xFF,0xFF,0xFF};    // 结束符
aStrT0 = "t0.txt";                  // txt字符串指令
aStrTim = "2022/11/22 21:30:30";    // 时间信息字符串
printf("%s="%s"",aStrT0,aStrTim);   // 串口输出时间信息
HAL_UART_Transmit(&huartHMI,ucHMIEnd,(uint8_t)3,200);    // 发送结束符

此处这种编写格式,keil中会报错,无法识别到%s。

继续往下查看手册查找原因,在1.3中给出了发送变量到串口屏例程,然后套用发送例程第三个格式继续调试。

uint8_t ucHMIEnd[3] = {0xFF,0xFF,0xFF};    // 结束符
aStrT0 = "t0.txt";                  // txt字符串指令
aStrTim = "2022/11/22 21:30:30";    // 时间信息字符串
printf("%s=%s",aStrT0,aStrTim);     // 串口输出时间信息
HAL_UART_Transmit(&huartHMI,ucHMIEnd,(uint8_t)3,200);    // 发送结束符

调试后串口助手可接收到规定格式字符串,但是txt控件依旧无法改变值。因为前面加双引号格式不被识别,然后就在此格式字符串输出上各种尝试......

 官方单片机输出例程

        根据帮助手册,自己实在无法解决时间信息输出问题,又回到官方网站,查找问题解决方法,最终在官方网站查到了单片机工程文件。此处仅截取txt控件赋值格式。

//-----------------------------发送变化的字符开始--------------------------------//定义一个字符串数组char tjcstr[100];/********示例1:给文本控件赋值**********用sprintf来格式化字符串,给t0的txt属性赋值,给控件的文本属性赋值时,内容需要用成对的 \" \" 包裹住,当格式化的参数为字符串时,请保证字符串以\0结尾*****************************************/sprintf(tjcstr, "t1.txt=\"现在是%d\"", a);//把字符串发送出去HMISends(tjcstr);//发送结束符HMISendb(0xff);

官方工程给出的示例代码中,要求将txt文本属性赋值时的内容使用成对的\" \"包裹住。然后根据示例代码修改工程代码:

uint8_t ucHMIEnd[3] = {0xFF,0xFF,0xFF};    // 结束符
aStrT0 = "t0.txt";                  // txt字符串指令
aStrTim = "2022/11/22 21:30:30";    // 时间信息字符串
printf("%s=\"%s\"",aStrT0,aStrTim); // 串口输出时间信息
HAL_UART_Transmit(&huartHMI,ucHMIEnd,(uint8_t)3,200);    // 发送结束符

再次编译工程,成了!卡住两天无进展,各种扒帮助手册、官方文件、博文,最终还是靠官方例程解决了,我觉得官方帮助手册可以给出各控件的示例代码,毕竟很多人还是靠看手册来开发的。

转义字符的使用

那么问题来了,为何需要加成对的\" \"包裹才能赋值。在前面贴出的帮助手册1.3下面有一行标注内容:若不明白“\”使用法,自行百度“C语言转义字符”。

百度到一份C语言常见转义字符,直接拉过来。由表格可以看到,字符串中使用双引号时,需要在前面加转义字符,才能表示为字符型双引号。

最终总结一点,C语言基础该补补了!

STM32 发送字符串至淘晶驰串口屏显示到txt控件——避坑相关推荐

  1. 淘晶驰串口屏_提示p0.pic 初始值无效:图片ID无效

    淘晶驰串口屏_提示p0.pic 初始值无效:图片ID无效 这是由于没有使用了图片控件,却没有导入图片素材导致的 导入图片素材后,要选择对应的控件,为控件的pic/picc/pic0/pic0等需要赋值 ...

  2. 淘晶驰串口屏入门(二)文本、字库、滚动文本、滑动文本、数字、变量与虚拟浮点数

    软件左侧为控件栏,点击可以快速创建控件 一.文本控件 1.点击文本控件,快速创建一个文本控件 2.屏幕上出现了一个文本控件,注意:t+数字开头的为文本控件,这是控件的名称,你可以自己修改 3.选中文本 ...

  3. 淘晶驰串口屏入门(五)下拉框 选择文本 动画 视频 外部图片

    一.下拉框控件 1.注意cb+数字开头的为下拉框控件 2.只有x3和x5系列的串口屏支持下拉框控件,k0,t0和t1系列不支持 3.设置path属性来给下拉框赋值,每个值之间用换行隔开 4.val属性 ...

  4. 淘晶驰串口屏入门(七)数据记录控件、文件浏览器控件、文件流控件

    一.数据记录控件 1.注意data+数字开头的为数据记录控件 2.只有x3和x5系列的串口屏支持数据记录控件,k0,t0和t1系列不支持 3.使用data0.insert方法向数据记录控件添加记录 4 ...

  5. 淘晶驰串口屏与DSP28335通信实现三相电压电流实时显示

    最近有个项目需要使用屏幕实时显示系统的电压电流,使用串口屏能减少很多额外的工作量,在此做一个开发记录. 选择了淘晶驰家的串口屏,这里选用的是3.5寸的触屏显示. 附上官方文档: start [USAR ...

  6. 淘晶驰串口屏_ 控件事件详解

    ▶1 控件按下事件 在控件的显示区域内,触摸被按下的瞬间,串口屏在执行完成控件按下状态刷新完成以后,串口屏会自动执行一次控件的<按下事件>中的代码. ▶2 控件弹起事件 在控件的显示区域内 ...

  7. 淘晶驰串口屏_ 串口屏卡顿的原因

    1.使用了全屏的控件来作为背景,导致控件之间重叠(两个控件有交叉的部分),当有一个控件刷新时,重叠的控件也会一起刷新,导致屏幕效率大大降低从而导致卡顿 2.使用了delay 当使用了delay时,串口 ...

  8. 串口助手和淘晶驰串口屏模拟器联调

    1.首先需要安装两个软件,一个是Virtual Serial Port Driver Pro,另一个是sscom(最新版本5.13.1,免费,单文件,不需要安装),两个软件在网上都能下载到,具体的安装 ...

  9. 淘晶驰串口屏如何修改设备型号

    1.点击设备 2.在弹出的窗口点击设备 3.选择串口屏类型T0.T1.K0.X3.X5 4.选择串口屏的具体类型

最新文章

  1. 分治策略解决幂乘问题
  2. 【青少年编程】【一级】森林的一天
  3. TSQL--NESTED LOOPS JOIN
  4. Drop Down ComboBox
  5. ADT-bundle
  6. c语言栈指针移动原理,C指针原理(4)-ATamp;T汇编
  7. 1-1Pytorch导学
  8. 【Linux】常用命令之 awk 常用实例
  9. pycharm “collecting data“
  10. KDiff3 merge conflict 窗口操作说明
  11. 魔兽争霸V星际争霸V红警
  12. 【题解:洛谷4186||USACO18JAN Cow at Large G】
  13. 花生壳域名绑定动态IP原理浅析
  14. Jenkins里的Crumb
  15. Testin云测平台操作步骤
  16. latex输入单双引号
  17. BCG 使用之CBCGPEdit控件
  18. 各大IT企业招聘所须要求技能
  19. 《了凡四训》读书总结
  20. HAL库学习笔记ADC篇----ADC多通道连续转换+DMA方式

热门文章

  1. 南京商标注册优势有哪些?
  2. FAF世链区块链大会|斯塔克科技CTO张剑:IPFS解决Web3.0数据存储瓶颈
  3. 网吧cf正在连接服务器,windows10系统下运行cf游戏提示连接服务器失败怎么解决...
  4. bat 批处理 命令快速入门
  5. 《越狱》第一季 第1集
  6. 解决小游戏黑屏情况之一
  7. IBM站一个网页到底包含了多少技术
  8. bitnami-常见问题(Linux)
  9. Elasticsearch 零基础入坑指南
  10. 开发一个基于ZXing库以及安卓Studio的二维码扫描小程序(二)