串口屏编程
Ⅰ 大彩串口屏可不可以支持二次编程
您好,广州大彩很高兴为您解答疑问:
大彩串口屏全系列均可支持modbus协议的屏幕可以使用minic脚本来实现编程,主要是关于变量变化的回调函数。
另外,大彩物联型串口屏可以支持lua脚本,lua脚本具有灵活性、可扩展性强的特点。
了解更多二次编程问题请电询大彩工程师。
Ⅱ linux串口编程(termios)相关的使用问题
你好楼主,前一阵正好研究了一下linux串口编程,苦恼了一阵,不过总算弄通了,下面说一下我的思路和理解。
struct termios state; 这是一个设计到串口属性的结构体,通过给结构体内的属性赋值来设计串口
的一些属性。
tcgetattr (STDIN_FILENO, &state); 这是获取当前的串口的属性,并赋给STDIN_FILENO这个设
备。计算机中已定义STDIN_FILENO这是一个标准输入的设
备,通常是写在屏幕上(就是在屏幕上显示)。如楼主所说
的A与B相连,可能就是从A写到B了。
=====下面是重新给串口的结构体的属性赋值,以达到自己想设计一个什么功能的串口========
state.c_iflag &= ~(ICRNL | INPCK | ISTRIP | BRKINT); c_iflag是控制输入属性的标志位,打个比
方,c_iflag原来是111,ICRNL代表001 ,ICRNL代表010,ISTRIP代表100,这三
个常量按位或ICRNL | INPCK | ISTRIP 得出的结果就是111 然后再取 ~(非)符号
得的结果就是 000。就代表最终c_iflag的值是000。然后计算机就会根据这一窜二
进制的数字来判断输入的到底是什么属性。向ICRNL 这些常量的值都是在计算机
中已经定义好的了。但是字符串的位数要比我举例子的要多,我只是说了个大概的
意思。 下面我说一下上面个参数的意思。
ICRNL 代表将输入中的回车换为新行。
INPCK 代表启用奇偶校验。
ISTRIP 代表去掉第八位,(就是传输是只传7位)
BRKINT 代表 如果设置了IGNBRK,将忽略BREAK。如果没有设置,但是设置了
BRKINT,那么BREAK将使得输入和输出队列被刷新(影响应该不大)
state.c_iflag |= IXON; IXON 表示可以用ctrl-s暂停输出 。
state.c_lflag &= ~(ICANON | IEXTEN | ISIG | ECHO);
c_lflag 代表本地属性(local),原理同上,下面介绍下个参数的用意。
ICANON代表允许一些特殊字符以及按行缓冲。
IEXTEN 当设置 时可被识别,不再作为输入传递。
ISIG 代表当接收到INTR QUIT SUSR 或 DSUSP时产生信号。
ECHO 显示输入字符。
state.c_oflag &= ~OPOST; c_oflag 代表输出控制标志位。
OPOST 代表程序可以选择加工过的输入
state.c_cflag |= CS8; c_cflag 代表控制标志位(ctrl)
CS8代表字符长度掩码是8为,(如会看到串口一些数据
“ 9600 -8-n-1” 代表频率9600,字符长度8位,无奇偶校验,一
位停止位)。
state.c_cflag |= CREAD; CREAD代表设置接受使能。
state.c_cc[VMIN] = 1; 代表非常规模式下读的最小的字符数。
state.c_cc[VTIME] = 0; 代表非常规模式下读的最小延迟。
==========================================================================
tcsetattr (STDIN_FILENO, TCSAFLUSH, &state); 这是把刚才设置好的属性又赋值给
STDIN_FILENO这个设备。
TCSAFLUSH代表当清空输入输出缓冲区时
才改变。
以上是我的看法,希望这些对你有帮助, 欢迎有问题与我交流。
Ⅲ 串口屏与51单片机连接好,怎么编程
看串口屏的规格,按照规格书上写的来做.
Ⅳ arino接收串口屏指令
首先根据按键对应的口线进行按键状态扫描,加入按键消抖程序,确认按键后,执行开灯/关灯程序执行。然后执行对应报文的发送即可。
Ⅳ MCS-51单片机串口四种工作方式的波特率如何确定
1、串口屏和软件成功联机之后,左上角会显示当前波特率。
Ⅵ 串口屏怎么使用菜单控制,我用的是大彩的。
开发环境版本 大彩科技官网很多教程你可以登录官网去看看 这是我在官网复制的
1. VisualTFT软件版本:V3.0.0.749 及以上;
版本查看:(以下教程以使用大彩串口屏为准)
(1)打开软件,右下角显示的软件版本号。
(2) 打开VisualTFT,点击帮助->关于VisualTFT可以查看当前软件版本号。
最新版本可登陆大彩串口进行下载
2. 串口屏硬件版本:V2.22.915.XXX及以上。
版本查看:
(1) 查看屏幕背面版本号贴纸。
(2) VisualTFT与屏幕联机成功后,右下角显示的版本号。
2. 功能概述
菜单控件,弹出菜单供用户进行选择,选择后快速地将所选数据显示在屏幕上。
把菜单控件放置在一个新建画面中,菜单控件放置完成,如图 3 1所示。
图 3 1放置菜单控件
3. 技术实现
3.1 属性窗口
属性窗口是对控件属性进行更改的一个界面,熟悉属性窗口可以更好地对控件功能进行应用,如图 4 1所示。
图 4 1 属性窗口
1. 控件设置
(1) 菜单外观:分为单色和自定义图片。教程以使用大彩串口屏为准
A:选择单色,可进行菜单字体以及背景部分设置,如图 4 2所示。
图 4 2 单色
B:选择自定义图片,同时设置弹起时、按下时的图片,如图 4 3所示。
图 4 3 自定义图片
注:若设置自定义图片,并且需要用到裁剪功能,请将图片分辨率调整为屏幕分辨率大小,此处不建议使用裁剪功能。
(2) 字体:可以选择字体的大小。
(3) 背景色:选择菜单控件的背景色。
(4) 前景色:选择菜单控件上文字的颜色。
2. 菜单设置
(1) 菜单风格:分为弹出菜单和固定菜单,如图 4 4所示。
A:弹出菜单,菜单需要点击按钮或者发出指令,菜单会弹出来。
B:固定菜单,菜单一直固定显示在屏幕上 。
图 4 4 菜单风格
(2) 菜单方向:水平或者垂直,建议按需设置,调试查看哪种方向适合使用。
(3) 菜单项数:显示菜单有多少项。
(4) 菜单数据:选中菜单中的选项后显示在文本控件上的数据,数据由用户自定义,数据与数据之间用半角“;”隔开。
(5) 多语言选项:可以设置语言数;选项以半角分号隔开。
3.2 查看ID
要完成控件的功能应用,前提必须知道怎么查看控件和画面的ID。
1. 查看控件ID
如图 4 5所示,当前画面图标左上角的数字即为控件的ID。
图 4 5 控件ID
2. 查看画面ID
如图 4 6所示,点击资源窗口,可以查看每个画面对应的ID。
图 4 6 画面ID
3.3 例程操作
菜单控件要在屏幕上进行选择,并在屏幕上进行显示,需要协同文本控件和按钮控件进行使用。所以我们在画面中,需要放置一个按钮控件、一个文本控件、一个菜单控件,如图 4 7所示。
注:当我们数据比较庞大的时候,可以用一个按钮控件匹配多个菜单控件。
图 4 7 放置控件
插入控件后,我们对插入的三个控件分别进行设置。
1. 对菜单控件属性窗口进行设置
如图 4 8所示,菜单外观→自定义图片;弹起时的图片→选择弹起时的图片UI;按下时的图片→选择按下时的图片UI;菜单风格→弹出菜单;菜单方向→水平;菜单项数→“5”;菜单数据→“57.7;100;220;230;无效;”。
图 4 8 菜单控件属性
2. 对文本控件属性窗口进行设置
如图 4 9所示,清空文本框;对齐方式→居中对齐;输入方式→用户主机输入。
图 4 9 文本控件属性
3. 对按钮控件属性窗口设置
注:串口屏硬件版本号V2.22.793.XXX以前,包括793在内的产品,弹出菜单功能不支持直接设置按钮控件触控用途为“弹出菜单”,否则工程下载到硬件时将导致弹出菜单是无法正常使用的;如需正常使用弹出菜单,请使用上面介绍的开关描述功能进行设置。我司后续新产品将全面支持此功能。
因为产品固件更迭的原因,所以这里设置按钮控件的属性窗口有两种方法:
A:如果固件版本为793之前的版本(老版本),对按钮控件属性设置如图 4 10所示,触控用途→开关描述;设置对内按下时指令(下面详细介绍设置指令方法)。
图 4 10 按钮控件属性
对内按下时指令设置方法:教程以大彩串口屏为准
打开指令助手,如图 4 11所示,在指令助手中选择下拉菜单,设置选择当前画面ID、当前菜单控件ID、 “显示下拉菜单”、当前文本控件ID
图 4 11 指令助手设置
在按钮属性窗口中,鼠标左键点击图 4 12标示区域,会弹出“...”的展开标志。
图 4 12
如图 4 13所示,然后点击“...”的展开标志。
图 4 13
系统会弹出一个输入框,如图 4 14所示,把复制的指令填充到输入框中。
图 4 14 输入框
B:如果固件版本为793之后的版本(新版本),对按钮控件属性设置如图 4 15所示,触控用途→弹出菜单;菜单控件ID→“1”;文本控件ID→“2”。教程以大彩串口屏为准
图 4 15 按钮控件属性
4. 模拟仿真
编译无误后,运行模拟器测试效果,如图 4 16所示。
图 4 16 模拟仿真
Ⅶ 串口编程中,如何设置标志位
你好楼主,前一阵正好研究了一下linux串口编程,苦恼了一阵,不过总算弄通了,下面说一下我的思路和理解。
struct termios state; 这是一个设计到串口属性的结构体,通过给结构体内的属性赋值来设计串口
的一些属性。
tcgetattr (STDIN_FILENO, &state); 这是获取当前的串口的属性,并赋给STDIN_FILENO这个设
备。计算机中已定义STDIN_FILENO这是一个标准输入的设
备,通常是写在屏幕上(就是在屏幕上显示)。如楼主所说
的A与B相连,可能就是从A写到B了。
=====下面是重新给串口的结构体的属性赋值,以达到自己想设计一个什么功能的串口========
state.c_iflag &= ~(ICRNL | INPCK | ISTRIP | BRKINT); c_iflag是控制输入属性的标志位,打个比
方,c_iflag原来是111,ICRNL代表001 ,ICRNL代表010,ISTRIP代表100,这三
个常量按位或ICRNL | INPCK | ISTRIP 得出的结果就是111 然后再取 ~(非)符号
得的结果就是 000。就代表最终c_iflag的值是000。然后计算机就会根据这一窜二
进制的数字来判断输入的到底是什么属性。向ICRNL 这些常量的值都是在计算机
中已经定义好的了。但是字符串的位数要比我举例子的要多,我只是说了个大概的
意思。 下面我说一下上面个参数的意思。
ICRNL 代表将输入中的回车换为新行。
INPCK 代表启用奇偶校验。
ISTRIP 代表去掉第八位,(就是传输是只传7位)
BRKINT 代表 如果设置了IGNBRK,将忽略BREAK。如果没有设置,但是设置了
BRKINT,那么BREAK将使得输入和输出队列被刷新(影响应该不大)
state.c_iflag |= IXON; IXON 表示可以用ctrl-s暂停输出 。
state.c_lflag &= ~(ICANON | IEXTEN | ISIG | ECHO);
c_lflag 代表本地属性(local),原理同上,下面介绍下个参数的用意。
ICANON代表允许一些特殊字符以及按行缓冲。
IEXTEN 当设置 时可被识别,不再作为输入传递。
ISIG 代表当接收到INTR QUIT SUSR 或 DSUSP时产生信号。
ECHO 显示输入字符。
state.c_oflag &= ~OPOST; c_oflag 代表输出控制标志位。
OPOST 代表程序可以选择加工过的输入
state.c_cflag |= CS8; c_cflag 代表控制标志位(ctrl)
CS8代表字符长度掩码是8为,(如会看到串口一些数据
“ 9600 -8-n-1” 代表频率9600,字符长度8位,无奇偶校验,一
位停止位)。
state.c_cflag |= CREAD; CREAD代表设置接受使能。
state.c_cc[VMIN] = 1; 代表非常规模式下读的最小的字符数。
state.c_cc[VTIME] = 0; 代表非常规模式下读的最小延迟。
==========================================================================
tcsetattr (STDIN_FILENO, TCSAFLUSH, &state); 这是把刚才设置好的属性又赋值给
STDIN_FILENO这个设备。
TCSAFLUSH代表当清空输入输出缓冲区时
才改变。
以上是我的看法,希望这些对你有帮助, 欢迎有问题与我交流。
Ⅷ 迪文串口屏描述指针如何使用
描述指针存放的是各变量的属性,比如颜色,字体大小等,当客户不需要使用描述指针时,默置0xFFFF即可。
当客户不使用默认配置的属性,或者需要实时改变某变量的属性时,需要用到描述指针。
地址不能冲突:
描述指针的地址范围与变量地址一样,T5L系列的标准串口屏的地址范围是0x1000-0xFFFF. 用户定义时需要注意不要相互冲突。描述指针与变量地址不能相互冲突,上一个描述指针(变量地址)不能与下一个描述指针(变量地址)不能相互冲突。
描述指针占用地址大小:
每种变量的描述指针占用的地址不一样,具体需要参考开发指南,查找每种变量占用的地址:
比如变量图标的描述指针占用地址:8个0x0008
从上表可知:
红框表示颜色的属性,在描述指针上偏移3个字的地址表示颜色的首地址,用2个字节长数据表示颜色数值。即,设置描述指针为0x6000,那么存储颜色数值的地址就为0x6003,在地址里写什么数据就显示相应颜色。
根据智能屏的串口读写协议,通过串口发送指令即可改变颜色显示。
比如,发送5A A5 05 82 6003 F800 指令,可改变颜色为红色。
其中:5A A5 帧头;05 数据长度;82 写变量存储器指令;6003 存储颜色数值的地址;F800 红色值。
如果要改变其它属性,按上述说明类似操作即可。
Ⅸ 求arino与串口屏通信的代码
首先是串口的读入: 基本的串口读入: void setup() { Serial.begin(9600); //设置波特率为9600,一般是这个波特率 } void loop() { if(Serial.available()>0)//如果串口有数据进入的话 { char c=Serial.read();//每次读一个字符,是ASCII码的 } } 然后就是相当于读入信息的处理了 比如说如果建一个字符串name,每读一次c若不是等号或空格就加进去, 当读到等号时就读完一个名字了,接下来一直读到空格的都是数据, 当读到空格后就完成一个循环,继续上面的循环这样
Ⅹ 单片机串口编程问题,用modbus协议
你确定这里if( RX_Buffer[11] == CheckSum(RX_Buffer, 1, 10) && RX_Buffer[12] == CheckSum(RX_Buffer, 0, 10))
不是if( RX_Buffer[13] == CheckSum(RX_Buffer, 1, 10) && RX_Buffer[14] == CheckSum(RX_Buffer, 0, 10))吗?
还有就是CheckSum(RX_Buffer, 1, 10)参数1和10是什么意思,这个10有点诡异。