串口屏MINIC教程-回调函数使用说明V1.0

2025-10-26 04:43:19

1、该例程使用大彩基本型7寸串口屏DC80480B070为验证开发平台。

1、准备好相应的美工UI。如图所示

串口屏MINIC教程-回调函数使用说明V1.0

1、1. 上位机VisualTFT内部已集成了MINIC开发编译环境,点击菜单栏工具,选择MINIC编辑器,如图所示。

串口屏MINIC教程-回调函数使用说明V1.0

2、2. 打开编辑器后,Visual TFT画面如图所示;

串口屏MINIC教程-回调函数使用说明V1.0

1、教程DEMO中功能的实现步骤如下:

1. 新建工程;

2. 配置MODBUS协议;

3. 画面配置;

4. 运行预览。

2、1.1.1 新建工程

打开VisualTFT软件的菜单栏【文件】→【新建工程】,弹出新建工程窗口,设置工程名称、路径、 设备型号,点击【确定】,如图所示;

串口屏MINIC教程-回调函数使用说明V1.0

3、1.1.2 MODBUS协议配置

1. 点击软件VisualTFT菜单栏中的【工具】并选择【协议与变量设置】,如图所示;

串口屏MINIC教程-回调函数使用说明V1.0

4、 在“协议与变量设置”窗口中,先点击左侧的【协议设置】,然后在右侧【启用协议】选择“启用”,【协议类型】选择“MODBUS从机协议”,协议配置详细如图 所示。

串口屏MINIC教程-回调函数使用说明V1.0

5、配置协议完成后,点击【变量定义】,然后点击“添加”按钮添加变量,详细配置如图所示;

串口屏MINIC教程-回调函数使用说明V1.0

6、1.1.3 配置工程画面

1. 首页画面配置

画面中放置六个按钮并设置为切换画面属性,分别指向相对应的画面,如图所示;

串口屏MINIC教程-回调函数使用说明V1.0

7、2. on_init画面配置

(1) 打开VisualTFT软件的菜单栏【工具】→【协议与变量设置】,在协议与变量设置画面中添加两个保存寄存器,寄存器地址分别为0和1并分别命名为“电压”和“电流”,如图1所示;

(2) 将画面中文本控件1、2分别绑定变量“电压”、“电流”,如图2所示。

串口屏MINIC教程-回调函数使用说明V1.0

串口屏MINIC教程-回调函数使用说明V1.0

8、(3) 画面功能:系统初始化时调用函数对变量赋值。对应的功能函数编写程序如程序清单 1所示;

程序清单 1  on_init程序

/**************************************************************************

** 函数:on_init

** 功能:系统执行初始化

** 注意:局部变量定义,只能在函数的最前面定义

***************************************************************************/

void on_init()

{

//

// 画面:on_init

// 功能:初始化电压为10、电流为2

//

"电压" = 10;

"电流" = 2;

 ......

}

9、3. on_systick画面配置

(1) 打开VisualTFT软件的菜单栏【工具】→【协议与变量设置】,在协议与变量设置画面中添加一个保存寄存器,寄存器地址为2并命名为“运行时间”,如图 1所示;

(2) 将画面中文本控件1绑定变量“运行时间”,如图2所示;

串口屏MINIC教程-回调函数使用说明V1.0

串口屏MINIC教程-回调函数使用说明V1.0

10、(3) 画面功能:系统运行后,每一秒调用一次on_systick,在on_systick函数内添加一个计数器,可以算出运行时间。对应的功能函数编写程序如程序清单 2所示。

程序清单 2  on_systick

/**************************************************************************

** 函数:on_systick

** 功能:定期执行任务(1秒1次)

** 局部变量定义,只能在函数的最前面定义

***************************************************************************/

void on_systick()

{

//

// 画面:on_systick

// 功能:每次增加一秒

// 注意:局部变量定义,只能在函数的最前面定义

//

++"运行时间";

}

11、4. on_timer画面配置

(1) 打开VisualTFT软件的菜单栏【工具】→【协议与变量设置】,在协议与变量设置画面中添加一个保存寄存器,寄存器地址为3并命名为“计数”,如图 1所示

(2) 将画面中文本控件3绑定变量“计数”,如图 2所示。

串口屏MINIC教程-回调函数使用说明V1.0

串口屏MINIC教程-回调函数使用说明V1.0

12、(3) 画面功能:按下开启定时器后,按照设定的时间循环调用定时器函数on_timer,每次调用都让计数器自加一,通过绑定文本控件将计数器的值在画面中显示出来,对应的功能函数编写程序如程序清单 3和程序清单 4所示

程序清单 3  on_timer程序

void on_timer(int timer_id)

{

if(timer_id == 0)

{

//

//画面:on_timer

//功能:计数器,记录定时器触发次数

//注意:局部变量定义,只能在函数的最前面定义

//

"计数"++;

}

}

程序清单 4  按钮触发函数

/****************************************************************************

** 函数:on_control_notify

** 功能:控件值更新通知

** 参数:screen_id,画面ID

** 参数:control_id,控件ID

** 参数:value,新值

** 注意:局部变量定义,只能在函数的最前面定义

****************************************************************************/

void on_control_notify(int screen_id,int control_id,int value)

{

if(screen_id == 3)

{

//

// 功能:按钮控制开启定时器和停止定时器

// 函数:start_timer(timer_id, timeout, countdown, repeat)

// 函数功能:启动定时器

// 参数:    timer_id,    定时器ID;

//           timeout,     超时时间;

//          countdown,   1顺计时,0倒计时

//           repeat        计时次数,0无限循环

//

if(control_id == 1 && value == 1)

{

start_timer(0, 1000, 1, 0 );

}

//

// 函数:stop_timer(timer_id)

// 函数功能:启动定时器

// 参数:    timer_id,    定时器ID;

//

if(control_id == 2 && value == 1)

{

//停止定时器

stop_timer(0);

}

}

......

}

13、5. on_variant_update 画面配置

(1) 打开VisualTFT软件的菜单栏【工具】→【协议与变量设置】,在协议与变量设置画面中添加三个保存寄存器,寄存器地址分别为4、5、6并将寄存器分别命名为“速度”、“时间”、“里程”,如图1所示

(1) 将画面中文本控件1、2、3分别绑定变量“速度”、“时间”、“里程”,如图2所示

串口屏MINIC教程-回调函数使用说明V1.0

串口屏MINIC教程-回调函数使用说明V1.0

14、(3) 画面功能:当变量发生变化后会触发此函数,对应的功能函数编写程序,如程序清单 5所示

程序清单 5  变量更新回调函数

/**************************************************************************

** 函数:on_variant_upate

** 功能:串口通信导致变量更新时,执行此函数

** 注意:局部变量定义,只能在函数的最前面定义

***************************************************************************/

void on_variant_upate()

{

//

//功能:操作符'@'用于判定某个寄存器是否发生改变

//       速度或者时间发生变化时,重新计算里程

//注意:局部变量定义,只能在函数的最前面定义

//

if(@"速度" || @"时间")           

{

"里程" = "速度" * "时间";

}

}

15、6. on_control_notify 画面配置

(1) 打开VisualTFT软件的菜单栏【工具】→【协议与变量设置】,在协议与变量设置画面中添加一个保存寄存器,寄存器地址为7并命名为“通知次数”,如图 1所示

(2) 将画面中文本控件7绑定变量“通知次数”,如图 2所示;

串口屏MINIC教程-回调函数使用说明V1.0

串口屏MINIC教程-回调函数使用说明V1.0

16、(4) 画面功能:每次操作控件都会相应调用一次on_control_notify,通过一个计数器将每次触发都统计起来,并绑定文本控件在画面中显示次数。对应的功能函数编写程序,如程序清单 6所示

程序清单 6  on_control_notify 程序

/****************************************************************************

** 函数:on_control_notify

** 功能:控件值更新通知

** 参数:screen_id,画面ID

** 参数:control_id,控件ID

** 参数:value,新值

** 注意:局部变量定义,只能在函数的最前面定义

****************************************************************************/

void on_control_notify(int screen_id,int control_id,int value)

{

     ......

if(screen_id == 5)

{

if(control_id == 1)              //运行按钮

{

if(value == 0)     //弹起通知

{

"通知次数" ++;          

}

else if(value == 1)   //按下通知

{

"通知次数" ++;           

}

else if(value == 2)          //长按通知

{

"通知次数" ++;

}

}

else if(control_id == 2)   //文本控件

{

"通知次数" ++;               

}

else if(control_id == 3)         //图标控件

{

if(value == 0)

{

"通知次数" ++;           //弹起通知

}

else if(value == 1)

{

"通知次数" ++;           //按下通知

}

}

else if(control_id == 4)  //选择控件

{  

"通知次数" ++;               

}

else if(control_id == 5)      //菜单

{  

"通知次数" ++;              

}

else if(control_id == 6)   //滑块

{  

"通知次数" ++;              

}

}

}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢