本例程基于arduino mega2560调试,串口屏的TX接mega2560的RX3(14),串口屏的RX接mega2560的TX3(15),串口屏的GND接mega2560的GND
//arduino的GND接串口屏或串口工具的GND,共地 //arduino的TX3接串口屏或串口工具的RX //arduino的RX3接串口屏或串口工具的TX //arduino的5V接串口屏的5V,如果是串口工具,不用接5V也可以 //根据自己的实际改为对应的串口,我这里接的是TX3和RX3 #define TJC Serial3 #define FRAME_LENGTH 6 int a; unsigned long nowtime; void setup() { // put your setup code here, to run once: //初始化串口 TJC.begin(); //因为串口屏开机会发送88 ff ff ff,所以要清空串口缓冲区 while (TJC.read() >= 0); //清空串口缓冲区 TJC.print("page main\xff\xff\xff"); //发送命令让屏幕跳转到main页面 nowtime = millis(); //获取当前已经运行的时间 } void loop() { // put your main code here, to run repeatedly: char str[100]; if (millis() >= nowtime + 1000) { nowtime = millis(); //获取当前已经运行的时间 //用sprintf来格式化字符串,给n0的val属性赋值 sprintf(str, "n0.val=%d\xff\xff\xff", a); //把字符串发送出去 TJC.print(str); //用sprintf来格式化字符串,给t0的txt属性赋值 sprintf(str, "t0.txt=\"现在是%d\"\xff\xff\xff", a); //把字符串发送出去 TJC.print(str); //用sprintf来格式化字符串,触发b0的按下事件,直接把结束符整合在字符串中 sprintf(str, "click b0,1\xff\xff\xff"); //把字符串发送出去 TJC.print(str); delay(50); //延时50ms,才能看清楚点击效果 //用sprintf来格式化字符串,触发b0的弹起事件,直接把结束符整合在字符串中 sprintf(str, "click b0,0\xff\xff\xff"); //把字符串发送出去 TJC.print(str); a++; } //串口数据格式: //串口数据帧长度:6字节 //帧头 led编号 LED状态 帧尾 //0x55 1字节 1字节 0xffffff //例子1:上位机代码 printh 55 01 00 ff ff ff 含义:1号led关闭 //例子2:上位机代码 printh 55 04 01 ff ff ff 含义:4号led打开 //例子3:上位机代码 printh 55 00 01 ff ff ff 含义:0号led打开 //例子4:上位机代码 printh 55 04 00 ff ff ff 含义:4号led关闭 //当串口缓冲区大于等于6时 while (TJC.available() >= FRAME_LENGTH) { unsigned char ubuffer[FRAME_LENGTH]; //从串口缓冲读取1个字节但不删除 unsigned char frame_header = TJC.peek(); //当获取的数据是包头(0x55)时 if (frame_header == 0x55) { //从串口缓冲区读取6字节 TJC.readBytes(ubuffer, FRAME_LENGTH); if (ubuffer[3] == 0xff && ubuffer[4] == 0xff && ubuffer[5] == 0xff) { sprintf(str, "msg.txt=\"led %d is %s\"\xff\xff\xff", ubuffer[1], ubuffer[2] ? "on" : "off"); TJC.print(str); } } else { TJC.read(); //从串口缓冲读取1个字节并删除 } } }
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/65665.html