淘晶驰USART HM串口屏作为上位机 mcu对其命令分析
本帖最后由 z01228 于 2021-2-10 02:04 编辑试验平台:mcu:arduino uno 串口屏:淘晶驰 TJC4024K032_011X
****这个内容不是什么高大上的,不喜勿喷*****
背 景:最近做一个项目需要做一个复杂的菜单,但是oled12864 屏幕太小并且纯使用uno进行编程的话控制逻辑比较复杂,并且有各种参数+交互设备。所以想到了触摸串口屏幕(也是刚刚开始学习这个)来降低编程的难度。
试验目的:串口屏作为上位机发送字符串命令给单片机,单片机对命令进行解析并且分发给各个变量、再依据这些执行相关命令函数(目前没有添加这块)目前用9600波特率进行试验 mcu分析命令数据基本稳定,但是屏幕点击比较快的话mcu分析的数据 还是有可能出错有实际应用的朋友可以自己添加验证程序。
程序部分:
/*串口屏发送命令数据
* 命令示例:pA-220B-111D
mcu串口分析结果
串口屏开始符 p = p , 指令标1 zrf1 = A , 指令参数1 data1 = -220 , 指令参数2 zrf2= B , 指令参数2 data2 = -111 , 停止符3 tzf3= D
总命令 zmr =p+ A-220B-111D
*/
串口屏相关程序:
*字库需要自己添加
1初始化设置:
vis t1,0 //不显示t1控件
vis t0,0 //不显示t0控件
bauds=9600//以下代码只在上电时运行一次,一般用于全局变量定义和上电初始化数据
int sys0=-1,sys1=0,sys2=0 //全局变量定义目前仅支持4字节有符号整形(int),不支持其他类型的全局变量声明,如需使用字符串类型可以在页面中使用变量控件来实现
page 0 //上电刷新第0页按键控件1:
vis t1,0 //不显示t1控件
vis t0,0 //不显示t0控件
covx sys1,t0.txt,0,0 //把sys1的值赋予t0 (数字转字符串)
covx sys0,t1.txt,0,0//把sys0的值赋予t1 (数字转字符串)
t2.txt="A"+t0.txt+"B"+t1.txt+"D"//拼接命令
sys0=sys0-10
sys1=sys1-20
get t2.txt//发送命令
按键控件2:
vis t1,0 //不显示t1控件
vis t0,0 //不显示t0控件
covx sys1,t0.txt,0,0 //把sys1的值赋予t0 (数字转字符串)
covx sys0,t1.txt,0,0//把sys0的值赋予t1 (数字转字符串)
t2.txt="A"+t0.txt+"B"+t1.txt+"D"//拼接命令
sys0=sys0+10
sys1=sys1+20
get t2.txt
mcu部分:
下面图片是分析结果和部分程序:有了这几个命令符 和相关参数就可以组织判断程序 执行相关函数了。
/*串口屏幕文本命令数据分析
* 命令示例:pA-220B-111D
发送按键程序:
*串口屏初始化一定要添加 bauds=9600 来固定波特率
vis t1,0 //不显示t1控件
vis t0,0 //不显示t0控件
covx sys1,t0.txt,0,0 //把sys1的值赋予t0 (数字转字符串)
covx sys0,t1.txt,0,0//把sys0的值赋予t1 (数字转字符串)
t2.txt="A"+t0.txt+"B"+t1.txt+"D"//拼接命令 D是停止符
sys0=sys0-10
sys1=sys1-20
get t2.txt//发送命令
串口分析结果
串口屏开始符 p = p , 指令标1 zrf1 = A , 指令参数1 data1 = -220 , 指令参数2 zrf2= B , 指令参数2 data2 = -111 , 停止符2 tzf2= D
总命令 zmr =p+ A-220B-111D
*/
char ksf1; //指令开始符1
char zrf1; //指令标示符2
long data1; //指令参数1(可以是正常正负)
char zrf2; //指令标示符3
long data2; //指令参数2
char tzf3; //指令标示符3
String zmr= "";//总命令
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()>0) { // 检查串口缓存是否有数据等待传输
delay(10);
if (Serial.available()>0) {
屏幕的程序附件有3m就不上传了 ,有需要的朋友可以按照自己的屏幕型号结合上面复制一下。
大哥你这arduino代码不完整呀 realtmacback 发表于 2021-8-6 15:56
大哥你这arduino代码不完整呀
应该没有问题吧我跑过
页:
[1]