淘晶驰串口屏常见问题及解决方法 | 您所在的位置:网站首页 › 串口输出信号不稳定怎么办 › 淘晶驰串口屏常见问题及解决方法 |
连接不上屏幕?
用的什么usb转ttl芯片,如果是ch340请更换为ft232或者cp2102。 (为什么要换ch340? 因为ch340有很多假货) TX、RX是否连接正确 串口屏和电脑或者单片机是否共地 检查串口驱动是否正确安装 串口号是否选对/手动选择串口 尝试拔插串口工具 尝试重启电脑 尝试更换一个串口工具试试 使用串口软件调试时,不要加回车换行 尝试更换屏幕 波特率是否匹配 检测连接方式是否正确,是用TTL电平还是用232电平 检查电源是否稳定,电压有没有被拉低,电源不稳定可能会造成任何异常 如何检查串口驱动是否正确安装 右键我的电脑-管理-设备管理器-端口,应有正确的端口号并且无感叹号 如何安装串口驱动? 将串口转ttl工具插到USB接口上,安装驱动人生/360驱动大师/驱动精灵软件后进行自动安装 推荐使用CP2102、FT232芯片的串口工具,不推荐使用ch340芯片的工具 在定时器0里面加入使能定时器1的语句为什么系统不执行 每次使能定时器后,时间都会重头算 比如timer0是1秒1次,timer1是10秒一次,每次timer0里赋值timer1.en=1时,timer1都会从0开始计时,那么timer1就永远执行不了,应该在timer0中使能timer1时先判断timer1d的状态 If(timer1.en==0) { timer1.en=1 } 结构兼容性 K050和T050结构兼容。T050和X350,X550结构不兼容。 5寸是唯一一款X系列改变结构的型号 一编译然后软件就失去响应了 1、电脑配置如果不是很低。就考虑是不是有流氓软件拦截了我们软件操作硬盘。 用串口下载程序,成功 但 显示 Update failed check error 出现这个问题是因为,串口传输数据产生误码了。可以从以下方面着手解决。 1,尝试降低串口波特率。 2,缩短串口延长线距离 3,换一个USB转串口模块 使用串口下载工程慢怎么办? 1、手动选择自己的串口,可以节省搜索串口的时间 2、下载波特率和通讯波特率是分开的,下载波特率可以使用最快的921600,通讯的波特率需要单片机和屏幕匹配,如果是cp2102和ft232的串口芯片,建议直接选择921600的最高波特率进行下载 3、使用sd卡进行下载,下载完成后断电,拔出sd卡重新上电即可 printf()重定向之后,发送命令和结束符 printf("n0.val=666"); //发送命令 printf("\xff\xff\xff"); //发送结束符 printf("n0.val=666\xff\xff\xff"); printf("n0.val=%d\xff\xff\xff",MyData); //一次性发完命令和结束符 printf("t0.txt=\"%d\"\xff\xff\xff",MyTxt); //一次性发完命令和结束符 Arduino发送 其他发送方法 HMISends("t0.txt=\""); HMISends(Str); HMISends("\""); HMISendb(0xff); 单片机如何控制屏幕(文本控件) 1、在上位机工程新建一个文本控件,假设为t0,将程序下载到串口屏上, 2、串口屏串口与单片机串口连接,两者波特率应一致,单片机RX接串口屏TX,单片机TX接串口屏RX。 3、发送指令:单片机串口通过字符串模式发送t0.txt="六六六" 4、发送结束符:单片机通过HEX模式发送0xff 0xff 0xff 5、此时屏幕上的t0控件内的文字变为“六六六” 单片机如何控制屏幕(数字控件) 1、在上位机工程新建一个数字控件,假设为n0,将程序下载到串口屏上, 2、串口屏串口与单片机串口连接,两者波特率应一致,单片机RX接串口屏TX,单片机TX接串口屏RX。 3、发送指令:单片机串口通过字符串模式发送n0.val=666 4、发送结束符:单片机通过HEX模式发送0xff 0xff 0xff 5、此时屏幕上的n0控件内的文字变为“666” 串口屏如何显示小数 方法1:使用虚拟浮点数控件 1、在上位机工程新建一个数字控件,假设为x0,设置虚拟浮点数控件的小数点位数2位,将程序下载到串口屏上, 2、串口屏串口与单片机串口连接,两者波特率应一致,单片机RX接串口屏TX,单片机TX接串口屏RX。 3、发送指令:单片机串口通过字符串模式发送x0.val=314 4、发送结束符:单片机通过HEX模式发送0xff 0xff 0xff 5、此时屏幕上的x0控件内的文字变为“3.14”
方法2:使用文本控件 1、在上位机工程新建一个文本控件,假设为t0,将程序下载到串口屏上, 2、串口屏串口与单片机串口连接,两者波特率应一致,单片机RX接串口屏TX,单片机TX接串口屏RX。 3、发送指令:单片机串口通过字符串模式发送t0.txt="3.14" 4、发送结束符:单片机通过HEX模式发送0xff 0xff 0xff 5、此时屏幕上的t0控件内的文字变为“3.14” 调试时可以正常显示,但是下载进屏幕就无法使用 这种情况是因为没有配置波特率导致的,串口屏默认是9600的波特率,但是如果你是用了其他波特率,却没有在串口屏初始化时配置的话,就会导致这种情况,在调试时可用,是因为选择用户mcu输入时选择了正确的波特率时,串口屏的波特率会自动改变 单片机解析串口屏发来的数据 比如屏幕printh aa 01 0d 0a代表开灯,printh aa 02 0d 0a代表关灯 单片机判断(其中aa是开始位,odoa是结束位) if(uartRxMsg[0]==0xaa&&uartRxMsg[2]==0x0d&&uartRxMsg[3]==0x0a) { switch(uartRxMsg[1]) { case 0x01://开灯操作 break; case 0x02://关灯操作 break; } } 单片机解析串口屏发来的多个数据,假设发送rtc的值假设有这么一串数据 55 01 02 03 04 05 06 0d 0a(其中55是开始位,0d0a是结束位) if(uartRxMsg[0]==0x55&&uartRxMsg[7]==0x0d&&uartRxMsg[8]==0x0a) { int year = uartRxMsg[1]; int mon = uartRxMsg[2]; int day = uartRxMsg[3]; int hh = uartRxMsg[4]; int mm = uartRxMsg[5]; int ss= uartRxMsg[6]; }串口屏上怎么发呢 printh 55 va0.val=rtc0-2000 prints va0.val,1 prints rtc1,1 prints rtc2,1 prints rtc3,1 prints rtc4,1 prints rtc5,1 printh 0d 0a 虚拟sd卡文件夹如何打开左上角文件-虚拟sd卡文件夹 文本控件如何换行 如果是上位机软件中直接使用多行编辑,直接按回车可以换行. 在控件的事件中给文本赋值时用\r t0.txt=”123\r456” 串口发送给屏幕时用\r\n 串口屏主动解析模式 1、在页面初始化使用recmod=1,进入主动解析模式,退出主动解析模式方法。 2、设置一个50ms的定时器,en=1. 3、定时器事件如下 4、当接收到0x01时,p0切换到id=4的图片,当接收到0x02时,p0切换到id=3的图片 退出主动解析模式方法 常规的退出主动解析模式方法是在事件中写入recmod=0的固件指令,如果想通过串口数据来退出,串口发送recmod=0是肯定没有用的,可以通过发送一串退出密码来实现退出主动解析模式,退出密码为一串24字节的字符串+3字节的结束符。 24字节的字符串: DRAKJHSUYDGBNCJHGJKSHBDN (字符串数据,必须大写) 3字节的结束符(Hex数据): 0xff 0xff 0xff 合计27字节 运算逻辑 所有运算不支持乘除法优先,也不支持括号优先级,统一从左到右的顺序,请特别注意。 错误:视频IDO文件方向与当前工程显示方向不一致 更改了屏的现实方向以后,需要重新用视频转换工具转换导入视频。并在导入的时候选择方向。 更改了屏的现实方向以后,需要重新用视频转换工具转换导入视频。并在导入的时候选择方向。 界面旋转/翻转 SD卡下载工程 1、输出生产文件 2、拷贝你编译后产生的.tft文件到SD卡根目录(文件名中英文均可) 3、屏幕断电,插入SD卡 4.屏幕上电,自动进入工程升级界面 5、等待升级完成 6、断电,拔出sd卡 7、重新上电 提示语句错误:无前括号 大括号要要单独放一行 下拉框动态添加 cb0.path+="\raaa" 就会添加一个aaa的选项 下拉框添加数值 cb0.path=cb0.path+"123\r"+"456\r"
拓展IO 按键板问题 fpc线
FPC 座是10P 1.0MM fpc是1.0x10pin 支持的型号:x5系列 8路(其中2路PWM),k0系列8路(其中4路PWM) 如何修改设备型号 串口屏如何制作弹窗 提示:建议使用x3系列或者x5系列进行制作,以为t0和k0不支持透明png 方法一: 新建一个页面,页面背景用一张全屏的png图片,如下图,分辨率为800*480,必须要全屏的,但是周围是镂空的(灰色和白色格子部分),然后保存为PNG格式,如果是其他格式的话,空白部分会被填充成白色。 当需要弹窗时,page到这个页面就可以了。 方法二: 添加一个图片控件,用的是方法1中制作的这个图片 平时不需要弹窗时,用vis隐藏这张图片,需要弹窗时,用vis显示这张图片 如何手动为文本控件/数字控件输入字符 设置文本控件/数字控件的vscope属性为全局,并且设置key属性,选择相应的键盘即可 如何修改官方自带的键盘 点击解锁之后,点击是,就可以对页面进行编辑了,如果最后感觉不满意,可以选择重置系统页面 自定义键盘 基于官方的键盘进行更改 调用键盘页之前,先对键盘页的loadpageid.val和loadcmpid.val赋值就可以了,其他的逻辑会自动实现,loadpageid.val表示调用页的页面ID,loadcmpid.val表示调用页的控件ID 提示转义字符使用错误 这种情况发生在输入“\”时,只需要换成“\\”就行了 数据记录控件删除 data0.delete(param1,param2) param1:要删除记录的起始位置 Param2:要删除的条数 eg: data0.delete(data0.val,1) //删除当前选中的记录 数据记录控件变黑报错 1.File configuration data does not match Component configuration data. It is recommended to delete this file. The system will recreate the correct data file: sd0/ xxx.data 因为记录的字段和所指定的.data文件中的字段数量不符导致的,只需把存储卡或者虚拟sd卡文件夹中的原本的.data文件删除即可 2、提示file lost :没插micro sd(tf)卡 数据记录控件存储在内存中的方法(重启会丢失) 1、将数据记录的位置指定到ram中 2.设备-工程-内存文件存储区大小设置为100000Byte(至少大于65kB=65560Byte) 屏幕通电后不断的闪烁/不断重启 这种现象一般出现在4.3寸及以上的屏,因为供电不足导致的,请检查你的电源带载能力,在通电情况下检测屏幕电源座子上的电压是否正常。务必亲自动手检测带载能力,不要看电源标签上的标称值,多数电源的标称值都是假的。 用数字键盘给数字框输入数字后,怎么又回到默认值了,好像屏复位了。 因为你在当前屏幕的初始化里给这个控件赋值了 每次关闭键盘的时候,会重新载入当前页面,控件的值就会被初始化了 解决方法是在跳转到这一页之前给控件赋值,避免每次进入当前页面时被初始化 在键盘页面按下ok时,直接发送编辑好的文本 1、解锁键盘页面 2、编辑ok按钮的弹起事件,在page命令前加上prints input.txt,0语句(注意,page之后的指令是不会被执行的,因为已经跳转到别的页面了) 如何导入.page文件 vis命令 使用了vis命令将控件隐藏了之后,按键就看不到也摸不到了,但是可以使用click命令触发 使用数组操作 必须知道相关控件的id,不能直接使用objectname,比如t[0],这样子的,必须要p[页面数字].b[控件id] 现主界面长时间没有触摸事件时启动屏保界面,屏保界面有触摸事件时回到主界面 1,在页面上新建一个定时器 2,如果有任何按键操作,那么给这个定时器定时清零 3,如果一定时间没操作。跳转到屏保页面 4,屏保页面有操作,返回主页面 如果是在主动解析模式下,有省电的需求,可以在屏保页面的初始化中将dim设置为0,在退出界面中将dim设置为100 编译时提示变量名称无效
检查是否存在这个变量 检查变量是否添加了.val或者.txt 如果是跨页面调用,需要设置该变量为全局,并且调用时在前面加上页面的名称 检查运算符号两遍是否存在空格 检查是否添加了分号 编译时提示无效指令
检查关键字是否拼写正确 检查运算符两边是否有多余的空格 检查语句结束是否多添加了分号 二维码控件是gb2312还是utf8编码 单片机发什么格式给二维码,二维码就是什么格式,二维码控件自己并不知道什么格式,他只管显示hex数值 修改编码为utf8 1、修改工程的编码 2、删除原有的字库,修改为utf8字库(需要勾选自己所需要的语言,如果添加了所有语言,字库会相当大) 文本数据显示不完全 文本数据长度不够或者字库中没有某些字 使用rtc功能,并且将星期由数字转化为汉字(仅x5,k0支持) rtc电池型号 CR1220 备注:如果要使用rtc功能,必须装上电池,否则断电后屏幕的时间就会变化 常用开发工具 http://wiki.tjc1688.com/doku.php?id=2.%E4%B8%8A%E4%BD%8D%E8%BD%AF%E4%BB%B6%E4%B8%8B%E8%BD%BD:4.%E5%B8%B8%E7%94%A8%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7 EEPROM如何使用,如何关机保存数据 T0系列没有EEPROM,不能关机保存数据,其他系列的串口屏可以关机保存数据 写入: http://wiki.tjc1688.com/doku.php?id=6.%E6%8C%87%E4%BB%A4%E9%9B%86:1.%E5%9F%BA%E6%9C%AC%E6%8C%87%E4%BB%A4%E9%9B%86,wepo
读取: http://wiki.tjc1688.com/doku.php?id=6.%E6%8C%87%E4%BB%A4%E9%9B%86:1.%E5%9F%BA%E6%9C%AC%E6%8C%87%E4%BB%A4%E9%9B%86,repo
写入一个变量到用户存储区(EEPROM) (支持X3、X5、K0系列) wepo att,add att:变量/常量 add: 用户存储区位置(从0开始,到1023结束,总共1024个) 实例1:wepo t0.txt,10 (将t0.txt的内容写入用户存储区的第10位置,在储存区中的占用空间为t0.txt的最大设置值+1,即t0的txt-maxl属性表示的大小+1,假如txt-maxl=20,那么最多可以放下10个汉字或者20个英文字母,实际占用的控件为10-30,共21个位置,下个存储地址应从31开始) 实例2:wepo “abcd”,20 (将字符串“abcd”写入用户存储区的第20位置,在储存区中占用大小为5字节,一个英文字母1个字节,共四个字节,因为是字符串,多加1个字节,最后为5个字节,实际存储地址为20-24,注意:由双引号括起来的或者xx.txt的就是字符串) 实例3:wepo 125,10 (将数值125写入用户存储区的第10位置, 在储存区中占用大小为4字节,即10-13位置) 实例4:wepo “一二三四五”,100 (将”一二三四五”字符串写入用户存储区的第100位置,每个汉字占用2字节,5个汉字共10字节,因为是字符串,加1字节,共11字节,实际存储地址100-110,下个存储地址应该从111开始) 备注: 1.写入内容为变量字符串的时候,在储存区中的占用空间为此变量的最大字符数+1;写入内容为常量字符串的时候,在储存区中的占用空间为此常量字符串的实际字符数+1。 2.写入内容为变量数值或常量数值的时候,在储存区中的占用空间统一为4字节。 3.使用用户存储区读写操作过程中请切记规划好数据区位置,以免位置交错引起数据覆盖错乱。
从用户存储区(EEPRO)读数据到一个变量 (支持X3、X5、K0系列) repo att,add att:目标变量 add: 用户存储区位置(从0开始) 实例1:repo t0.txt,10 (从用户存储区的10位置读数据到t0.txt变量中,在储存区中的读取数据量为t0.txt的最大设置值+1,即t0的txt-maxl属性表示的大小+1) 实例2.repo n0.val,10 (从用户存储区的10位置读数据到n0.val,在存储区中的读取数据量为4字节) 备注: 1.读入内容为变量字符串的时候,在储存区中的读取数据量为此变量的最大字符数+1。 2.读入内容为变量数值时候,在储存区中的读取数据量统一为4字节。 3.使用用户存储区读写操作过程中请切记规划好数据区位置,以免位置交错引起数据覆盖错乱。 如何切换按键显示状态 比如我一个按键,按一下,按钮上显示正在检测,再按一下按钮,按钮切换显示停止检测
if(b0.txt==”检测”) { b0.txt="停止检测" }else { b0.txt=”检测” } 控件无法显示文字 未制作字库或者选错字库(该字库中没有你要的字)————字库制作方法 制作完成后,应检查控件的font属性是否为你所需要的字库 如何查看字库中包含了哪些文字 双击该字库,即可查看到字库包含了哪些文字 字库制作方法 http://wiki.tjc1688.com/doku.php?id=4.%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AF%A6%E8%A7%A3:2.%E5%AD%97%E5%BA%93&s[]=%E5%AD%97%E5%BA%93 初始值无效:图片/字库ID无效 字库资源或者图片资源中没有你指定ID的图片,导入字库或者图片即可 哪些控件属性可以运行中修改,哪些不能运行中修改 如下图所示:属性栏中显示为绿色的属性都可以在运行中修改,黑色的属性只能在编辑时修改,不能在运行中修改。 txt属性和val属性有什么区别,为什么有些属性赋值要加双引号,有些不用加双引号 txt属性,即字符串属性。在给字符串做常量赋值时,需要添加双引号(与C语言相同)。
例如: t0.txt="abcd" t0.txt="\"hello\"" 使用C语言标准转义字符,结果为屏幕上显示内容为"hello"(包括双引号) t0.txt=t0.txt+"123" t0.txt在原来字符串的尾部在追加"123"这三个ASCII字符
val属性,即数值型属性。所有数值型操作时,不需要不需要使用双引号。
例如: n0.val=1234 n0.val=0xabcd n0.val=1234+0xabcd 双态按钮判断当前状态 if(bt0. val==1) { }else { } 运行中控件属性被修改后,离开页面再回来,不希望属性回到初始值怎么操作 将对应控件的vscope属性由默认的“私有”修改为“全局”即可。 注1:将控件设置为全局以后,只有在设备复位后会对所有全局控件做一次赋值操作。其他任何设备不会主动去修改全局控件属性值。 注2:每次进入页面时设备会执行页面的“前初始化事件”或者“后初始化事件”中的代码。如果用户在这里增加了任何操作属性的代码,则会按照用户代码操作去修改对应变量属性值。 如何操作其他页面的控件属性\跨页面操作控件属性 多数情况下,我们都是在操作当面页面的控件属性,如果需要操作其他页面的控件属性请按如下书写方式: [页面].[控件].[属性]=XXX 实例: main.t0.txt="123" 给main页面的t0.txt属性赋值"123" main.t0.txt=set.t3.txt 把set页面的t3.txt赋值给main页面的t0.txt set.t4.txt="abc" 给set页面的t4.txt赋值"abc" 特别注意:跨页面操作控件属性的时候,不管是读取还是赋值,被操作控件的vscope属性必须设置为全局(默认是私有),否则操作会失败。 http://wiki.tjc1688.com/doku.php?id=6.%E6%8C%87%E4%BB%A4%E9%9B%86:2.%E4%B9%A6%E5%86%99%E8%AF%AD%E6%B3%95&s[]=%E8%B7%A8%E9%A1%B5%E9%9D%A2,kuayemian 如何批量修改控件属性 请参阅文档:指令集->名称组使用说明 如何实现按键长按功能 1.新建一个定时器tm0,en属性设置为0,其他属性不用管;此时定时器处于默认关闭状态。 2.在按钮的按下事件中写上如下代码: tm0.tim=2000 2秒后进入长按功能tm0.en=1 打开定时器 3.在按钮的弹起事件中写上如下代码: tm0.en=0 已经松手了,所以定时器立即停止工作 4.在定时器tm0的定时事件中写上如下代码: tm0.tim=100 按钮刚按下的时候,定时时间是2秒,这里修改为100ms,就意味着如果不松手,每100ms会来执行一次后面的代码此处写上您想操作的长按事件代码,比如:n0.val++….. 使用EEPROM存储数据,开机后数据异常 1,每次修改eeprom以后,要等1秒才能断电。eeprom有缓冲机制。如果小于1秒断电,可能导致写入失败 2,升级最新的公测版试试看是否有改善 官方例程 http://wiki.tjc1688.com/doku.php?id=7.%E5%B7%A5%E7%A8%8B%E6%A0%B7%E4%BE%8B:2.%E5%AE%98%E6%96%B9%E5%8F%91%E5%B8%83%E5%BA%94%E7%94%A8%E6%A0%B7%E4%BE%8B 发送汉字相关问题 建议使用printf或者sprintf进行字符串拼接 发送符号时,需要进行转义
keil编译的程序 “汉字显示不全、串口发送汉字接收后乱码缺失”问题 https://blog.csdn.net/qq_34824576/article/details/79292584 解决方法是在出现问题的字体后面加上\xFD 如 :unsignedchar code s[]="数学"; 改为 unsignedchar code s[]="数\xFD学"; 即可正常显示。 下面是从GB2312中挑出来的相关汉字: 褒 饼 昌 除 待 谍 洱俘庚过 糊 积 箭 烬 君 魁 例笼慢谬 凝 琵 讫 驱 三 升 数她听妄 锡 淆 旋 妖 引 育札正铸 佚 冽 邶 埤 荦 蔟 摭啐帻猃 恺 泯 潺 妪 纨 琮 椠辇挲臊 忑 睚 铨 稞 瘕 颀 螨簖酏觚 鳊鼾 替代方法: 比如我做一个触摸热区,按下事件里写“电机异常”,弹起事件里写“电机正常”,把这个触摸热区屏幕外(避免被误触发),然后用单片机发送click去触发他 多国语言设置 最好是在第一页里面选择语言,然后存到一个全局变量里,然后在每一页的初始化里刷就好了 串口屏: 新建一个变量chooseLang,用于选择语言 在页面初始化中写: if(chooseLang.val==1) { t0.txt=”中文” }else if(chooseLang.val==2) { t0.txt=”English” }else if(chooseLang.val==3) { t0.txt="태양" }else if(chooseLang.val==4) { t0.txt="真実はいつもひとつ" } 字库占用的体积太大怎么办? 创建字库时,范围选择指定字符,只添加需要的字符 字高数值越大,每个字占用的体积越大,尽量选择比较小的字高 如何修改控件ID号 控件的id相当于控件所在的图层,越底层id越小,所以页面的id号是0,最顶层的id号是最大的,修改id号可以通过置顶,置底的操作来完成 变量控件名和页面名称可以一样吗 不可以和控件所在页面名称相同(报错:名称重复),但是可以和其他页面名称相同一样。 主动解析 缓冲区大小:1K 主动解析时缓冲区需要自己清空 规格书写的是1K。用最新版上位机,x系列是4k串口缓冲区,t0和k0还是1k 注意事项: 1、如果当前页面有需要进行键盘输入的控件,那么不要在当前页面的初始化中给页面赋值,否则每次离开键盘时,都会执行初始化中的赋值操作
】
|
CopyRight 2018-2019 实验室设备网 版权所有 |