大彩串口屏F系列MCU程序介绍

合集下载

物联型串口屏MCU程序介绍

物联型串口屏MCU程序介绍
void USART1_IRQHandler(void) {
2/ 23
广州大彩光电科技有限公司
物联型 MCU 程序介绍文档 V1.2
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { uint8_t data = USART_ReceiveData(USART1); queue_push(data); } } //接收数据到缓冲区
4. 如何移植到其它 MCU 系列.................................................................................23
广州大彩光电科技有限公司
物联型 MCU 程序介绍文档 V1.2
1. 程序架构介绍
我司提供了串口屏驱动代码和范例程序,目前支持的单片机平台有 51、 STM32。我司 例程上机测试的单片机是 STM32F103VCT6 和 STC89CX 系列, 用户可以直接修改范例程序, 参考程序上已有的功能,然后添加并修改自己的功能代码(例如温湿采集、开关控制等) 。 此文档所引用的程序出自 STM32 的例程, 但 51 实现功能代码也是一样的, 不同的只是定时 器和串口的配置。 指令的解析和处理流程完全由驱动代码提供。范例程序结构如下图 1- 1 所示:
2.2
指令
当串口屏与 MCU 通过串口连接后,它们间的通讯依靠指令。而指令是我司为了方便和 规范数据交互而定的协议,具体各种功能的指令可以参考指令集文档。 2.2.1 指令解析过程 MCU 的中断函数接收到指令后,将指令存储到指令缓冲区,在 main 函数的 while 循环 中,queue_find_cmd 会一直检测指令缓冲区,若缓冲区收到指令,立即进行提取;接着调用 ProcessMessage 函数解析指令, 然后调用对应指令类型的函数并将指令的数据作为参数传进 调用的函数。 2.2.2 接收指令 MCU 中断接收串口屏发送的指令到缓冲区

大彩工业串口屏--常见问题集锦1212

大彩工业串口屏--常见问题集锦1212

快速功能解答阅读以下问题前,请先仔细阅读手册,大部分都可以在手册上找到答案,部分可以在此文档找到答案,如没有找到您所需要的答案,您可以与我们联系,联系时候请先把问题描述清楚,以便快捷沟通郑重声明,本产品作为从机显示,也就是被动显示,不作主动控制功能,按键类可以上传对应的按键值,对应的客户端的MCU可以在接收到按键值后做一定操作,这部分操作包括对屏的操作,或者对应客户端控制的一下模块的操作USB不能供电,纯粹下载数据使用调试板说明:调试板是方便电脑与屏连接使用,不含任何转换电平功能,短接点J7、J11,请勿轻易更改,另外,电脑通讯是232电平,屏后面短接点J5短接为TTL,断开为232,如有连接不上,请查看一下是否短接(请详细查看丝印)对应功能搜索指引:如需查找对应功能,请在PDF上搜索对应的功能码或者关键词;如遇到不明白的指令,请在pdf上搜索对应功能码解读一、 设置类1、整个工程属性设置先找到属性窗口,然后左击一下《工程画面》,属性窗口处弹出工程设置相关属性(如图1),注意设备类型一定要与屏的设备类型保持一致,否则下载后会出现显示错误,但软件不会提示。

自动调节背光部分与背光指令相反2、进度条,滑块,仪表设置先找到属性窗口,然后左击一下进度条或者滑块或者仪表,属性窗口弹出对应的设置选项,请仔细查看设置3、文本控件设置可以设置弹出键盘,键盘有小键盘,有大键盘,可以设置为主机输入;文本控件显示可以设置为密码显示,也就是不显示出来,只显示“*****”4、字库配置:详细参考《字库升级说明》5、自动调节背光设置:(如图1)6、更改控件编号:控件编号是不能在属性窗口上手动设置,如需要对应某个控件需要更改为某个ID,如ID3的控件需要更改为ID5,可以先吧ID5的控件复制,然后删除ID5的控件,然后再次复制ID3控件,复制出来的控件为ID5,之前的ID3控件可以删除处理;其原理是:所有ID按顺序编译,中间某个去掉后,后面增加的控件自动填补到中间的ID二、 编译类1、仅几张图片编译工程时候提示错误一般此种情况是在工程《图片文件》上的图片全选择上了,此处的图片大小为图片的实际大小,也就是说图片是3M的,那编译进去的图片也为3M,但实际显示的为屏幕的分辨率大小,甚至不显示2、三、 下载类1、usb无法下载请先连接电源,上电,然后确认usb线是否连接好,请在“我的电脑”里的“设备管理器”里查看;如不行请更换不同的USB接口测试;如还是无法下载,请更换一根质量好的USB线;另外,如出现USB无法识别情况,请重新安装一下驱动,驱动包在安装目录下的《driver》2、串口无法下载NANO型只支持串口下载,如NANO型出现下载失败,或者无法下载,请确认是否已经连接好串口;部分基本型和标准型固件不支持串口下载;如发现下载速度过慢,可以设置更高的波特率进行下载,波特率请参照说明书,另外,注意电脑的波特率最高只能1152003、SD卡无法下载基本型与标准型支持SD卡下载,如SD卡下载失败或者无法下载,我司出厂下载使用“闪迪128MB”,不同牌子的SD卡可能会出现不兼容现象,如仍然无法使用SD卡下载,请转到USB下载,或者从我司购买SD卡4、NANO型下载:NANO型下载不支持控件功能,下载时候请勿下载触控配置,从量产向导下载,只选择图片一个选择,然后编译,最后下载四、 显示类1、文字NANO型字库错乱:NANO型字库空间为2M,所有字库大小不能超过2M,超出后会导致字库显示错乱,图片出现白条等,重新下载字库,工程图片等就可以了2、图片出现白条,横杠等,重新下载工程就可以了,部分usb质量差会导致出现此现象3、PNG格式图片不能用作背景图片,否则会导致部分显示部分出现残留现象4、客户部分图片不需要添加到工程页面上,可以直接在图片文件上一次添加多个图片,但图片分辨率必须小于或者等于设备的分辨率,超出的设备不显示5、图片出现晕圈现象,脱层显示部分图片下载到工程上会出现晕圈现象,原因是图片渐变较多,屏为65535色,渐变太多容易影响显示,解决方法是减少图片渐变,另外注意图片是美工过程中保存图片建议为16位色图片6、按钮按下的图片不对应界面的图片的分辨率建议以界面屏的分辨率大小为准,按钮设置为剪切功能时候,是对应其中的图片的分辨率的,如图片小或者大了,可能剪切不到对应的显示图片7、RTC时钟显示异常我们目前只有标准型的模块支持RTC时钟功能,如发现时钟显示异常,如显示时间错乱,或者时间相差比较远,可进行以下处理:一、重新校正时间,显示即可恢复正常,可以在调试助手中设置,也可以通过说明书上的指令设置。

广州大彩串口屏技术分享——串口屏的选型指南

广州大彩串口屏技术分享——串口屏的选型指南

串口屏选型指南每一个系列的详细参数都有差异,可以查阅数据手册进行了解。

1 .经济型串口屏:主要应用于家电、金融、物联网和消费低成本应用领域。

开发者MCU只需要一个串口就能轻松实现文本、GUI、图片、动画显示和触摸控制等功能。

支持多种常用组态控件:按钮控件、文本控件、仪表控件、图标控件、动画控件、进度条控件、滑块控件、下拉菜单控件、二维码控件和选择控件等,为开发者节省99%的程序开发量,真正的“所见即所得,零代码编程”,是新产品开发或替换单色屏的最佳选择。

经济型与基本型工业类相比:经济型只能5V供电;PCB电路板贴在屏幕背面;工作温度为0-70℃;只支持串口或SD下载,不支持USB下载;其它操作功能与基本型一模一样。

操作时,首先利用配套的上位机VisualTFT软件,将预先设计好的美工图片进行排版和控件配置,然后使用内置的“虚拟串口屏”进行模拟仿真,最后通过UART或SD卡将整个工程图片和配置下载到串口屏内部存储器中。

下载之前,上位机将会对工程中的每个画面、图片和按钮分配唯一的ID。

一旦触摸被按下,单片机串口就会收到屏幕上传的按钮ID值,通过解析ID值就可以判断当前哪个按钮被按下,然后发送相应的指令去控制画面显示。

任何初学者,只需30分钟即可熟练掌握。

经济型指南图如下所示:2 .基本型串口屏:基本型组态工业串口屏,适应恶劣环境、强磁干扰和户外等工作场合。

开发者MCU只需要一个串口就能轻松实现文本、GUI、图片、动画显示和触摸控制等功能。

支持多种常用组态控件:按钮控件、文本控件、仪表控件、图标控件、动画控件、进度条控件、滑块控件、下拉菜单控件、二维码控件和选择控件等,为开发者节省99%的程序开发量,真正的“所见即所得,零代码编程”,是新开发或替换单色屏的最佳选择。

操作时,首先利用配套的上位机VisualTFT软件,将预先设计好的美工图片进行界面排版和控件配置,然后使用内置的“虚拟串口屏”进行模拟仿真,最后通过USB/UART或SD 卡等方式将整个工程图片和配置信息下载到串口屏内部存储器中。

C8051F系列单片机串口通讯程序-推荐下载

C8051F系列单片机串口通讯程序-推荐下载

C8051F系列单片机串口通讯程序采用C8051F020单片机//串口编程--接收PC发过来的字符串,回发字符串.发送期间中断控制LED灯闪烁//采用外部晶振22.1184MHz 使用定时器1,方式2产生波特率,SMOD = 0或者1 //定时器初值X=256-SYSCLK*(SMOD+1)/(BAUDRATE*384)/#include <C8051F020.h>sfr16 TMR3RL = 0x92; //定时器3重装载寄存器sfr16 TMR3 = 0x94; //定时器3计数器#define uchar unsigned char#define uint unsigned int//----------------------------------------------------------------------//参数设置区//----------------------------------------------------------------------#define BAUDRATE 4800 //波特率bps#define CLKOUT 22118400 //外部晶振,修改也要修改OSCXCN#define SMODVAL 0 //SMOD的值,修改请也修改PCONVAL#define PCONVAL 0x00 //PCON的值,=0x00时SMOD0=0; =0x80时SMOD0=1 #define TXVAL (256-CLKOUT*(SMODVAL+1)/BAUDRATE/384) //定时器初值#define MAX_LEN 10 //每次接收/发送字符串的长度//---------------------------------------------------------------------//全局变量//---------------------------------------------------------------------sbit LED = P1^6; //LED '1'亮'0'灭bit readFlag = 0; //读标志uchar readCounts = 0; //已经读取的字符个数,与MAX_LEN比较uchar idata trdata[MAX_LEN]; //要接收/发送的字符串//----------------------------------------------------------------------//子函数声明//----------------------------------------------------------------------void SYSCLK_Init(void); //系统时钟初始化void PORT_Init(void); //端口初始化void UART0_Init(void); //串口UART0初始化void Send_Char(uchar ch); //发送单个字符void Send_String(uchar * str, uint len); //发送一个字符串void UART0_ISR(); //串口中断服务程序,接收字符void Timer3_Init(uint counts); //定时器3初始化void Timer3_ISR(void); //定时器3中断服务程序//----------------------------------------------------------------------//主函数//----------------------------------------------------------------------void main(void){WDTCN = 0xde; //禁止看门狗WDTCN = 0xad;SYSCLK_Init(); //时钟初始化PORT_Init(); //端口初始化UART0_Init(); //串口初始化Timer3_Init(CLKOUT/12/10); //定时器初始化EA = 1; //开全局中断while(1){if(readFlag) //已经读取{readFlag = 0; //清零Send_String(trdata,MAX_LEN); //发送字符串}}}//----------------------------------------------------------------------//子函数具体实现//----------------------------------------------------------------------//系统时钟初始化void SYSCLK_Init(void){uint i;OSCXCN = 0x67; //采用外部晶振22.1184MHz,不分频. 选型OSCXCN=0110,0111 for(i=0;i<256;i++); //等待>1mswhile(!(OSCXCN&0x80)); //查询直到XTLVLD=1,晶振稳定OSCICN = 0x88; //切换到外部振荡器,允许时钟失效监测器. OSCICN=1000,1000 }//端口初始化void PORT_Init(void){XBR0 = 0x04; //允许UART0,RX,TX连到2个端口引脚. XBR0=0000,0100XBR1 = 0x00;XBR2 = 0x40; //交*开关使能P0MDOUT |= 0x03; //P0.0为推拉方式输出,即TX0,RX0所在的端口0000,0011P1MDOUT |=0x40; //P1.6为推拉方式输出,即LED所在的端口0100,0000}//串口初始化void UART0_Init(void){SCON0 = 0x50; //选择串口方式1,波特率可变SCON0=0101,0000TMOD = 0x20; //选择T1,方式2,自动再装入8位计数器TH1 = (int)TXVAL; //T1初值,根据波特率,时钟等计算. 0xF4, bps=4800bpsTL1 = (int)TXVAL;ES0 = 1; //UART0中断开启TR1 = 1; //启动定时器T1PCON |= PCONVAL; //PCON=0x00,SMOD = 0 ; PCON=0x80,SMOD=1 TI0 = 1; //声明TX0就绪,可以发送TR0 = 1;}//定时器初始化void Timer3_Init(uint counts){TMR3CN = 0x00; //禁止定时器T3,清TF3,采用SYSCLK/12为时基TMR3RL = -counts; //初始化重装载值TMR3 = 0xffff; //设置为立即重装载EIE2 |= 0x01; //T3中断开启TMR3CN |= 0x04; //启动T3}//发送单个字符void Send_Char(uchar ch){SBUF0 = ch; //送入缓冲区while(TI0 == 0); //等待发送完毕TI0 = 0; //软件清零}//发送字符串,调用Send_Char() len字符串长度void Send_String(uchar * str,uint len){uint k = 0;do{Send_Char(*(str + k));k++;} while(k < len);}//定时器3中断服务程序void Timer3_ISR(void) interrupt 14 using 0{TMR3CN &= ~(0x80); //清TF3LED = ~LED;}//UART0中断服务程序. 接收字符void UART0_ISR(void) interrupt 4 using 1{uchar rxch;if(RI0) //中断标志RI0=1 数据完整接收{RI0 = 0; //软件清零rxch = SBUF0; //读缓冲if(readCounts>=MAX_LEN){readCounts = 0;readFlag = 1;}trdata[readCounts] = rxch; //存入数组,供发送readCounts++;}}//-------------------------------------------------------------//程序结束。

大彩串口屏F系列MCU程序介绍

大彩串口屏F系列MCU程序介绍

大彩串口屏F系列MCU程序介绍大彩串口屏F系列MCU是一种嵌入式开发板,用于控制串口屏显示内容的程序。

它采用ARM Cortex-M4内核的MCU,内置了硬件浮点单元(FPU),具有较高的计算性能和图形处理能力。

以下是针对大彩串口屏F 系列MCU程序的详细介绍。

1.硬件平台介绍大彩串口屏F系列MCU采用了一块集成了LCD显示屏、触摸屏和串口控制模块的硬件平台。

它能够直接接入主控板,通过串口通信进行数据交互。

LCD显示屏为TFT彩屏,具有较高的分辨率和色彩鲜艳的显示效果。

触摸屏能够实现人机交互,用户可以通过触摸屏进行操作。

串口控制模块负责与主控板进行通信,接收主控板发送的指令,并将指令解析后显示在LCD上。

2.编程环境介绍3.程序结构介绍大彩串口屏F系列MCU程序通常分为两个部分:初始化部分和主循环部分。

在初始化部分,程序会初始化串口控制模块、LCD显示屏和触摸屏等硬件设备,设置相应的参数和模式。

在主循环部分,程序会不断地接收来自主控板的指令,并根据指令的内容进行相应的操作,例如更新显示内容、响应触摸事件等。

4.功能介绍(1)显示功能:通过LCD显示屏将图形和文字等内容显示出来,具有较高的显示效果和用户体验。

(2)触摸功能:通过触摸屏实现人机交互,用户可以通过触摸屏进行操作,例如点击按钮、滑动屏幕等。

(3)通信功能:通过串口与主控板进行通信,接收主控板发送的指令,并将指令解析后进行相应的操作。

(4)多线程支持:大彩串口屏F系列MCU程序支持多线程操作,能够同时处理多个任务,提高程序的并发性和响应速度。

(6)外设支持:程序支持与外部设备的连接,如传感器、按钮等,可以通过程序的控制来实现对外部设备的操作和响应。

5.应用领域介绍大彩串口屏F系列MCU程序广泛应用于各种领域,如工业控制、智能家居、医疗设备、仪器仪表等。

它具有较高的性能和稳定性,能够满足不同领域的要求。

在工业控制方面,大彩串口屏F系列MCU可配合主控板实现人机界面,用户可以通过触摸屏进行操作和监控。

广州大彩串口屏技术笔记—如何快速调整工程设置

广州大彩串口屏技术笔记—如何快速调整工程设置

如何快速调整工程设置1适应范围本文档适合经济型、基本型、物联型、86盒系列等串口屏产品。

2开发环境版本2.1VisualTFT软件版本:V3.0.0.732及以上;版本查看:打开VisualTFT,点击帮助->关于VisualTFT可以查看当前软件版本号;最新版本可登陆本公司官方网站进行下载。

2.2串口屏固件版本:串口屏需要升级到Modbus版本固件(RS232和RS485接口)版本查看:(1) 查看屏幕背面版本号贴纸。

(2) VisualTFT与屏幕联机成功后,右下角显示的版本号。

3功能概述1、老版本软件支持旋转90度建工程,但画布无法旋转为90度视角,造成一定的编辑困难,新版本pc软件解决此问题,但由于软件无法直接兼容老工程,故此需要通过新建工程来达到旋转画布的目的。

2、不同型号尺寸工程调整:快速由大尺寸工程调整为小尺寸工程,或者小尺寸工程调整为大尺寸工程,兼容同一个MCU控制。

4技术实现4.1新老版本软件工程快速重建使用最新版本软件,新建一个工程,新建工程后,首先右键删除默认画面,如图4.1-图4.2所示。

图错误!文档中没有指定样式的文字。

.1新建工程图错误!文档中没有指定样式的文字。

.2删除文件在工程画面,右键添加,如图4.3所示,选择原始工程的画面,可以选中第一个,然后按住shift,然后选择到最后一个画面如图4.4所示,将会一次性添加到工程上,添加完毕如图4.5所示。

图错误!文档中没有指定样式的文字。

.3添加工程画面图错误!文档中没有指定样式的文字。

.4选择画面图错误!文档中没有指定样式的文字。

.5添加完成首先,添加完画面后,进行画面顺序调整,打开原工程,一一拖动画面顺序进行排序。

然后,打开原工程文件夹,把对应的所有图片,复制到新工程的Images文件夹上。

最后,双击工程属性画面,然后找到属性窗口,进行工程属性设置,设置与原工程一致即可,如图4.6所示。

图错误!文档中没有指定样式的文字。

广州大彩串口屏工程文档—串口屏指令集V4.2

广州大彩串口屏工程文档—串口屏指令集V4.2

大彩串口屏指令集V4.2修订历史目录1. 指令格式和指令集 (6)1.1指令格式 (6)1.1.1指令操作举例说明 (6)1.2颜色格式 (12)1.3组态指令集与基本指令集区别 (12)1.4如何快速熟悉指令集 (12)1.5组态指令集表 (13)2. 组态指令集详述 (31)2.1切换画面 (31)2.2读取画面 (31)2.3按钮控件ID值上传 (31)2.4设置按钮弹起或按下状态 (35)2.5对内指令实现按钮互斥和状态显示 (36)2.6对外指令输出 (36)2.7读取按钮控件状态 (36)2.8更新文本控件数值 (37)2.9读取文本控件数值 (39)2.10设置文本控件闪烁 (39)2.11设置文本控件滚动速度 (39)2.12设置文本控件背景色 (39)2.13取消文本控件背景色 (40)2.14设置文本控件前景色 (40)2.15更新进度条控件数值 (40)2.16获取进度条控件值 (41)2.17滑动条控件上传格式 (41)2.18更新滑动条控件数值 (42)2.19读取滑动条控件值 (42)2.20更新仪表控件数值 (43)2.21读取仪表控件数值 (43)2.22动画控件显示 (44)2.23图标控件显示 (45)2.24图标控件值上传 (46)2.25批量更新控件数值 (46)2.26曲线控件显示 (47)2.27设置下拉菜单控件 (49)2.28下拉菜单控件值上传 (51)2.29选择控件值上传 (51)2.30更新二维码控件 (53)2.31启动定时器 (54)2.32设置定时器 (54)2.33暂停定时器 (54)2.34清零定时器 (54)2.35读取定时器 (55)2.36设置光标焦点 (55)2.37手动禁止/使能屏幕更新 (55)2.38屏蔽/隐藏控件 (55)2.39RS485屏地址设置 (55)2.40RS485屏地址取消 (56)2.41锁定系统配置 (56)2.42解除系统配置锁定 (56)2.43数据记录控件添加常规记录 (56)2.44数据记录控件-清除记录数据 (56)2.45数据记录控件-设置记录显示偏移 (56)2.46数据记录控件-获取当前记录数目 (56)2.47数据记录控件-读取某一行记录 (57)2.48数据记录控件-修改常规记录 (57)2.49数据记录控件-删除某一行记录 (57)2.50数据记录控件-插入常规记录 (57)2.51数据记录控件-选中某一行数据记录 (57)2.52数据记录控件-一次添加多条记录 (58)2.53数据记录控件-SD卡导出指令(CSV格式) (58)2.54文本控件数字增量调节指令 (58)2.55视频控件-设置视频文件路径 (58)2.56视频控件-播放 (59)2.57视频控件-停止播放 (59)2.58视频控件-暂停/恢复播放 (59)3. 附录A基本指令集详述 (60)3.1握手 (60)3.2复位报告 (60)3.3复位设备 (60)3.4设置前/背景色 (60)3.5清屏 (61)3.6设置文字行列间距 (61)3.7设置文本框 (61)3.8设置图片过滤色 (61)3.9文本显示 (62)3.10光标显示 (63)3.11全屏图片显示 (63)3.12区域图片显示 (63)3.13图片剪切 (64)3.14动画显示 (64)3.15前景色画点 (65)3.16背景色画点(删除点) (65)3.17画线 (65)3.18将等间隔X坐标用前景色连接 (66)3.19按照坐标偏移量用前景色连线 (66)3.20将指定的坐标点用前景色连接 (66)3.21将指定的坐标点用背景色连接 (67)3.22按照坐标偏移量用背景色连线 (67)3.23画空心圆 (67)3.24画实心圆 (67)3.25画圆弧 (68)3.26画空心矩形 (68)3.27画实心矩形/局部清屏 (68)3.28画空心椭圆 (69)3.29画实心椭圆 (69)3.30背光调节 (69)3.31自动屏保模式 (69)3.32蜂鸣器控制 (69)3.33配置触摸屏 (70)3.34触摸屏校准 (70)3.35触摸屏体验 (71)3.36设置波特率 (71)3.37矩阵键盘控制 (72)3.38写数据到FLASH (72)3.39读取保存在FLASH中的数据 (73)3.40清除图层 (73)3.41切换画面时自动清除当前图层 (73)3.42截取当前屏幕并保存在FLASH中 (73)3.43显示保存在FLASH中的截取画面 (73)3.44RTC模式设置 (73)3.45RTC时钟设置 (74)3.46读取RTC时钟 (74)3.47将当前画面存储到TF卡 (74)3.48获取无线网络设置 (75)3.49获取网络状态 (75)3.50获取网络设置 (75)3.51获取网络服务 (75)3.52搜索无线网络 (75)3.53保存网络设置 (76)3.54保存网络服务 (76)3.55保存无线网络设置 (76)3.56发送网络数据 (76)3.57发送网络数据(十六进制) (76)3.58保存网络设置 (76)1. 指令格式和指令集1.1 指令格式一条完整的串口指令帧格式如表1.1所示。

大彩串口屏F系列_入门手册(最新版)

大彩串口屏F系列_入门手册(最新版)

F系列入门手册工程技术笔记广州大彩光电科技有限公司F系列入门手册V1.0修订历史版本日期原因V1.02017/09/29创建文档F系列入门手册V1.0V1.0目录1.适用范围 (5)2.开发环境版本 (6)3.工程建立 (7)3.1新建工程 (7)3.2新建画面 (7)3.3设置画面背景 (8)3.4画面控件配置 (8)3.4.1主页面按钮控件配置 (8)3.4.2按钮画面配置 (9)3.4.3文本画面配置 (11)3.4.4进度条画面配置 (12)3.4.5仪表画面配置 (12)3.4.6滑块画面配置 (13)3.4.7动画画面配置 (14)3.4.8图标画面配置 (16)3.4.9曲线画面配置 (17)3.5配置工程参数 (19)4.工程编译 (21)5.工程下载 (22)6.指令助手 (23)6.1PC与屏幕联机 (23)6.2指令调试操作 (23)6.3操作完毕 (25)7.PC软件与“虚拟串口屏”联机通信 (26)7.1概述 (26)7.2操作流程 (26)7.3准备软件工具 (26)7.4软件安装 (26)7.5创建一对虚拟串口并进行绑定 (27)7.6使用指令助手与虚拟串口屏进行通讯 (29)1.适用范围本文档适合F系列串口屏产品。

2.开发环境版本1.VisualTFT软件版本:V3.0.0.959及以上;2.串口屏硬件版本:V4.1.66.0.XXX及以上。

3.工程建立3.1新建工程点击【文件】→【新建工程】,输入工程名字:My_project,选择对应的系列和硬件型号。

如图3-1所示。

提示:本教程仅以7寸F系列DC80480F070_01为例,F系列其他尺寸均可参考此教程,使用方法和指令完全一样。

图3-1新建工程3.2新建画面1.点击【文件】→【新建画面】,新建画面名称默认为Screen0,用户可鼠标右键点击刚建好的画面选择【重命名】来更好管理工程。

本例重命名为“主页面”如图3-2所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.1 2.1 2.2 程序工作流程图.........................................................................................................2 串口屏下发指令.........................................................................................................2 指令.............................................................................................................................2 2.2.1 指令解析过程.....................................................................................................2 2.2.2 接收指令.............................................................................................................2 2.2.3 cmd_queue 串口屏指令队列.............................................................................3 2.2.4 ProcessMessage 解析指令类型......................................................................... 5 2.2.5 获取画面 ID 和界面数据更新.......................................................................... 7 2.3 MCU 例程功能实现.................................................................................................. 8 2.3.1 串口屏出厂例程的主界面................................................................................ 8 2.3.2 设置按钮按下.....................................................................................................8 2.3.3 定时更新文本数据............................................................................................ 9 2.3.4 定时更新仪表数据.......................................................................................... 10 2.3.5 进度条值与文本关联.......................................................................................11 2.3.6 播放动画和播放音乐...................................................................................... 12 2.3.7 显示图标...........................................................................................................13 2.3.8 定时更新曲线数据.......................................................................................... 14 2.3.9 选择控件...........................................................................................................16 2.3.10 触发警告和警告解除...................................................................................... 17
Technical Note
F 系列 MCU 程序介绍
工程技术文档
类别 关键词 摘要
内容 F 系列 MCU 程序介绍
广州大彩光电科技有限公司
广州大彩光电科技有限公司
F 系列 MCU 程序介绍 V1.0
目录
1. 程序架构介绍...........................................................................................................1 2. 例程分析...................................................................................................................2
4. 如何移植到其它 MCU 系列.................................................................................20
广州大彩光电科技有限公司
F 系列 MCU 程序介绍 V1.0
1. 程序架构介绍
我司提供了串口屏驱动代码和范例程序,目前支持的单片机平台有 51、 STM32。我司 例程上机测试的单片机是 STM32F103VCT6 和 STC89CX 系列, 用户可以直接修改范例程序, 参考程序上已有的功能,然后添加并修改自己的功能代码(例如温湿采集、开关控制等) 。 此文档所引用的程序出自 STM32 的例程, 但 51 实现功能代码也是一样的, 不同的只是定时 器和串口的配置。 指令的解析和处理流程完全由驱动代码提供。范例程序结构如下图 1- 1 所示:
3. 程序配置.................................................................................................................19
3.1 3.2 Visual TFT 配置....................................................................................................... 19 KEIL 开发软件........................................................................................................ 19
2.2.3 cmd_queue 串口屏指令队列 指令也理解为数据帧,数据帧一般分为三部分:帧头,ቤተ መጻሕፍቲ ባይዱ据部分,帧尾。 将指令队列定义为一个结构体 QUEUE,结构体成员包括了队列头,队列尾和队列的数据 缓冲区。 MCU 开机时调用队列函数 queue_reset 清空队列的缓冲区, 防止缓冲区中存在错误的 数据。串口屏发送指令到 MCU 后,MCU 的串口中断会调用函数 queue_push 提取数据到队 列缓冲区,当队列的缓冲区存在数据后, queue_find_cmd 函数将队列缓冲区的数据调用 queue_pop 一个一个提出来然后拼接成一个完整的指令。
图 1- 1 程序结构
1/ 20
广州大彩光电科技有限公司
F 系列 MCU 程序介绍 V1.0
2. 例程分析
2.1 程序工作流程图
图 2- 1
程序工作流程图
2.1
串口屏下发指令
每当对串口屏进行操作,串口屏都会下发相对应的指令,如切换画面、文本控件输入、 进度条值改变等操作都会发出对应控件变化的指令通知 MCU。
#define #define { qsize _head; qsize _tail; qdata _data[QUEUE_MAX_SIZE]; }QUEUE; static QUEUE que = {0,0,0}; static uint32 cmd_state = 0; static qsize cmd_pos = 0; void queue_reset() { que._head = que._tail = 0; cmd_pos = cmd_state = 0; } void queue_push(qdata _data) { qsize pos = (que._head+1)%QUEUE_MAX_SIZE; if(pos!=que._tail) { que._data[que._head] = _data; que._head = pos; } } //从队列缓冲区中取一个数据 static void queue_pop( qdata { if(que._tail!=que._head) { *_data = que._data[que._tail]; 3/ 20 //非空状态 * _data) //没有达到缓冲区的上限 //在中断中调用获取指令数据 //指令队列 //队列帧尾检测状态 //当前指令指针位置 //队列头 //队列尾 //队列数据缓存区 CMD_HEAD 0XEE CMD_TAIL 0XFFFCFFFF //帧头 //帧尾
相关文档
最新文档