陶晶驰串口屏调试(HMI)

串口屏界面设计

提示:串口屏的使用

利用VSCode C#生成需要的背景图片。
上位机软件 USART HMI 控件进行设置。
背景图如下:
背景图片
控件设置如下:
控件设置

功能实现

  • 加载界面

进度条增加,1S后跳到主界面
在这里插入图片描述

if(j0.val<=80)
  j0.val+=8
else if(j0.val<100)
  j0.val+=1
if(j0.val==100)
  page main
  • 其他界面 用按键板通过串口实现
    按键长按与短按定义不同功能
void BTN_ParaSelectPressed(void)
{
	static uint8_t oldState=BTN_RELEASE;
	static uint16_t count=0;
	static uint8_t longPress = 0,changpage = 0;

    //仅调试模式  可以更改参数
	if(para.workModeState != 3)
	{
		return;
	}
	if((btn_state[2] == BTN_PRESSED) && (oldState == BTN_PRESSED))
	{
		if(!longPress)
		{
			count ++;
			if(count > 20)
			{
				longPress = 1;
			}
		}
		else  //进入了长按状态下
		{
			if(!changpage)
			{
				count ++;
				if(count >= 3)  //发起一次页面切换
				{
					count = 0;
					changpage = 1;
					//更新UI界面
					UI_PageSwitch(10);
				}
			}
		}
	}
	//参数选择按键短按   参数被选中时字体变为红色 一共有三种参数选择
	else if((btn_state[2] == BTN_RELEASE) && (oldState == BTN_PRESSED))
	{
		count = 0;
		if(longPress > 0)
		{
			oldState = btn_state[2];
			return;
		}
		para.paraNum ++;
		para.paraNum %= 4;

		UI_selectParameter(para.paraNum); //改变选中颜色

		//参数选择回到初始值  就将设置的参数进行保存
		if(para.paraNum == 0)
		{
			Changeparameter_Sign = 1 ;
		}
	}
	else //清除按键标志
	{
		count = 0;
		if(1 == longPress)
		{
			changpage = 0;
			longPress = 0;
		}

	}
	oldState = btn_state[2];
}

页面切换

void UI_PageSwitch(uint8_t num)
{
	switch(num){
	case 0:
		sendBuf("page main",9);
		UI_commandEND();
		break;
	case 1:
		sendBuf("page input",10);
		UI_commandEND();
		break;
	case 2:
		sendBuf("page version",12);
		UI_commandEND();
		break;
	case 10:
		sendBuf("page menu",9);
		UI_commandEND();
		break;
	}
}

通信流程

串口屏与按键板通信

按键板,通过按键改变键值状态,调用回调函数扫描按键状态。再通过串口2向屏幕发送数据。

改变颜色

if(running)
	sendBuf("t4.pco=1055",11);
else
	sendBuf("t4.pco=63488",12);

改变图片

len = sprintf(buffer,"p2.pic=%d",para.EXI_1+2);
sendBuf(buffer,len);
UI_commandEND();

改变数据

if(para.paraoffset % 100 >= 10)
{
	len = sprintf(buf,"t2.txt=\"%d.%dmm\"",para.paraoffset/100,para.paraoffset%100);
}
else
{
	len = sprintf(buf,"t2.txt=\"%d.0%dmm\"",para.paraoffset/100,para.paraoffset%100);
}

按键板与主板通信

按键板更新的参数和动作通过USART1发送给主板,主板解包后将数据保存。同样上电后,主板将保存的数据发到按键板上进行显示。
参数更新

void Updata_Parameter()
{
	uint8_t i;
	unsigned char check_code ;
	if(Changeparameter_Sign == 0)
		return ;

	Changeparameter_Sign = 0;
    //若板子被3.3V供电未重启 按键板重启 报文不发送 直接返回

	ModBusRegister[0] = 0x0A;
	ModBusRegister[1] = 0x0A;
	ModBusRegister[2] = para.running ;
	ModBusRegister[3] = para.workModeState ;

	ModBusRegister[4] = para.paraspeed ;
	ModBusRegister[5] = para.paralimit ;
	ModBusRegister[6] = (para.paraoffset & 0xff00) >> 8;
	ModBusRegister[7] = para.paraoffset & 0x00ff;

	for(i=0;i<8;i++)
	{
		check_code += ModBusRegister[i];
	}

	ModBusRegister[8] = check_code;
	ModBusRegister[9] = 0x0D;

	sendBuf(ModBusRegister,10);
}

动作执行

void Updata_act()
{
	uint8_t i = 0;
	uint8_t check_code = 0;

	if(Changeact_Sign == 0)
			return ;

	Changeact_Sign = 0;

	buf[0] = 0x0E;
	buf[1] = 0x06;
	buf[2] = para.SL;  //送料动作
    buf[3] = 0x11;//备用
	for(i=0;i<4;i++)
	{
		check_code += buf[i];
	}

	buf[4] = check_code;
	buf[5] = 0x0D;

	sendBuf(buf,6);
    //发送完清掉
	para.SL = 0;
}

小结

其他细节可以参考这个:https://blog.csdn.net/qq_46336588/article/details/119424722

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现STM32按键控制陶晶驰HMI串口屏,首先需要了解STM32的按键输入和陶晶驰HMI串口屏的通信协议。 STM32的按键输入可以通过GPIO(通用输入输出)端口实现。可以通过配置相应引脚为输入模式,并启用上拉电阻或下拉电阻来实现按键的输入检测。当按键被按下时,对应的GPIO引脚状态将会改变。通过读取GPIO端口的输入状态,可以检测到按键的按下操作。 陶晶驰HMI串口屏主要通过串口通信与外部设备进行数据交互。常见的串口通信协议有RS232和RS485等。要实现STM32按键控制HMI串口屏,可以使用STM32的UART(通用异步收发器)模块与串口屏进行通信。通过配置串口的波特率、数据位、停止位、校验位等参数,可以建立起STM32串口屏之间的通信连接。通过发送特定的指令或数据包,可以实现对串口屏的控制与操作。 在具体实现过程中,可以使用STM32的中断方式检测按键的按下,并在按键被按下时,通过串口发送相应的指令或数据包给串口屏串口屏在接收到这些指令或数据包后,根据其内部的程序逻辑进行相应的处理操作,以实现与STM32按键的交互控制。 需要注意的是,在编写STM32的代码时,需要根据陶晶驰HMI串口屏的通信协议和指令集进行相应的编程处理。正确地解析和生成串口通信的数据包,以确保STM32HMI串口屏的通信能够正常进行。 总之,通过合理配置和编程STM32的按键输入和串口通信功能,结合陶晶驰HMI串口屏的通信协议,可以实现STM32按键控制HMI串口屏的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S安东尼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值