备份-各组件代码封装

This commit is contained in:
王绪洁 2025-07-31 14:42:05 +08:00
parent 3f4773eaf0
commit d8f30dcd94
7 changed files with 6286 additions and 5920 deletions

File diff suppressed because one or more lines are too long

View File

@ -205,6 +205,26 @@
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>lcd_set_button1_data</ItemText> <ItemText>lcd_set_button1_data</ItemText>
</Ww> </Ww>
<Ww>
<count>11</count>
<WinNumber>1</WinNumber>
<ItemText>txt_len</ItemText>
</Ww>
<Ww>
<count>12</count>
<WinNumber>1</WinNumber>
<ItemText>txt_value_str,0x0A</ItemText>
</Ww>
<Ww>
<count>13</count>
<WinNumber>1</WinNumber>
<ItemText>uart_lcd_txt_data</ItemText>
</Ww>
<Ww>
<count>14</count>
<WinNumber>1</WinNumber>
<ItemText>txt_value_str</ItemText>
</Ww>
</WatchWindow1> </WatchWindow1>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
* @Author: wangxujie wangxujie@wuxismart.com * @Author: wangxujie wangxujie@wuxismart.com
* @Date: 2025-03-10 15:05:20 * @Date: 2025-03-10 15:05:20
* @LastEditors: wangxujie wangxujie@wuxismart.com * @LastEditors: wangxujie wangxujie@wuxismart.com
* @LastEditTime: 2025-07-30 17:01:28 * @LastEditTime: 2025-07-31 14:39:12
* @FilePath: \signal_generator\User\driver\uart_lcd.c * @FilePath: \signal_generator\User\driver\uart_lcd.c
* @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
@ -12,21 +12,20 @@
#include "tim.h" #include "tim.h"
extern ip4_addr_t ipaddr; extern ip4_addr_t ipaddr;
uart_lcd_t uart_lcd_state = {0}; uart_lcd_t uart_lcd_state = {0};
lcd_makecurve_t lcd_makecurve_data = {0}; lcd_makecurve_t lcd_makecurve_data = {0}; // 绘制曲线数据界面ID 1控件ID 14
lcd_set_button_t lcd_set_button1_data = {0}; // 输出通道文本按钮界面ID 0控件ID 1
lcd_set_button_t lcd_set_button2_data = {0}; // 第一路AO输出箭头按钮界面ID 0控件ID 2
lcd_set_button_t lcd_set_button3_data = {0}; // 第二路AO输出箭头按钮界面ID 0控件ID 3
lcd_set_button_t lcd_set_button4_data = {0}; // SW1状态按钮界面ID 1控件ID 1
lcd_set_button_t lcd_set_button5_data = {0}; // SW2状态按钮界面ID 1控件ID 2
lcd_set_txt_t lcd_set_txt_data = {0}; // 文本设置数据
lcd_set_progress_t lcd_set_progress_data = {0}; // 进度条设置数据
lcd_switchscreen_t lcd_switchscreen_data = {0}; // 切换画面数据
extern float current_buff[2];
static void uart_lcd_page_init(lcd_switchscreen_t *screen_data); lcd_set_button_t lcd_set_button1_data = {0}; // 输出通道文本按钮界面ID 0控件ID 1
static void uart_lcd_button_init(lcd_set_button_t *button_data, uint16_t screen_id, uint16_t ctrl_id); lcd_set_button_t lcd_set_button2_data = {0}; // 第一路AO输出箭头按钮界面ID 0控件ID 2
static void uart_lcd_current_channel1(void); lcd_set_button_t lcd_set_button3_data = {0}; // 第二路AO输出箭头按钮界面ID 0控件ID 3
static void uart_lcd_current_channel2(void); lcd_set_button_t lcd_set_button4_data = {0}; // SW1状态按钮界面ID 1控件ID 1
lcd_set_button_t lcd_set_button5_data = {0}; // SW2状态按钮界面ID 1控件ID 2
lcd_set_txt_t lcd_set_txt1_data = {0}; // 文本设置数据界面ID 1控件ID 5
lcd_set_txt_t lcd_set_txt2_data = {0}; // 文本设置数据界面ID 1控件ID 6
lcd_set_txt_t lcd_set_txt3_data = {0}; // 文本设置数据界面ID 1控件ID 7
lcd_set_slidervalue_t lcd_set_slidervalue1_data = {0}; // 进度条设置数据界面ID 0控件ID 4
lcd_set_slidervalue_t lcd_set_slidervalue2_data = {0}; // 进度条设置数据界面ID 0控件ID 5
lcd_switchscreen_t lcd_switchscreen_data = {0}; // 切换画面数据
extern float current_buff[2];
static void uart_lcd_page_init(lcd_switchscreen_t *screen_data) static void uart_lcd_page_init(lcd_switchscreen_t *screen_data)
{ {
@ -48,6 +47,41 @@ static void uart_lcd_button_init(lcd_set_button_t *button_data, uint16_t screen_
button_data->cmd_tail = LCD_CMD_TAIL; button_data->cmd_tail = LCD_CMD_TAIL;
} }
static void uart_lcd_slidervalue_init(lcd_set_slidervalue_t *slidervalue_data, uint16_t screen_id, uint16_t ctrl_id)
{
slidervalue_data->cmd_head = LCD_CMD_HEAD;
slidervalue_data->cmd_type = LCD_CMD_TYPE;
slidervalue_data->cmd_ctrl_type = LCD_CMD_CTRL_TYPE_SET_SLIDERVALUE;
slidervalue_data->cmd_screen_id = screen_id;
slidervalue_data->cmd_ctrl_id = ctrl_id;
slidervalue_data->cmd_slidervalue = 0; // 默认滑块数值为0
slidervalue_data->cmd_tail = LCD_CMD_TAIL;
}
static void uart_lcd_markcurve_init(lcd_makecurve_t *curve_data, uint16_t screen_id, uint16_t ctrl_id)
{
curve_data->cmd_head = LCD_CMD_HEAD;
curve_data->cmd_type = LCD_CMD_TYPE;
curve_data->cmd_ctrl_type = LCD_CMD_CTRL_TYPE_MAKE_CURVE;
curve_data->cmd_screen_id = screen_id;
curve_data->cmd_ctrl_id = ctrl_id;
curve_data->cmd_curve_channel = 0; // 曲线通道
curve_data->cmd_data_len = 0; // 数据长度
memset(curve_data->cmd_data, 0, sizeof(curve_data->cmd_data)); // 清空数据内容
curve_data->cmd_tail = LCD_CMD_TAIL;
}
static void uart_lcd_txt_init(lcd_set_txt_t *txt_data, uint16_t screen_id, uint16_t ctrl_id)
{
txt_data->cmd_head = LCD_CMD_HEAD;
txt_data->cmd_type = LCD_CMD_TYPE;
txt_data->cmd_ctrl_type = LCD_CMD_CTRL_TYPE_SET_TXT;
txt_data->cmd_screen_id = screen_id;
txt_data->cmd_ctrl_id = ctrl_id;
txt_data->cmd_txt_data = 0.0f; // 默认文本内容为0.0
txt_data->cmd_tail = LCD_CMD_TAIL;
}
/** /**
* @brief LCD按钮状态 * @brief LCD按钮状态
* *
@ -78,10 +112,87 @@ static void uart_lcd_set_button_status(lcd_set_button_t *button_data, uint8_t st
uart_lcd_button_data[9] = (button_data->cmd_tail >> 16) & 0xFF; // 帧尾 uart_lcd_button_data[9] = (button_data->cmd_tail >> 16) & 0xFF; // 帧尾
uart_lcd_button_data[10] = (button_data->cmd_tail >> 8) & 0xFF; // 帧尾 uart_lcd_button_data[10] = (button_data->cmd_tail >> 8) & 0xFF; // 帧尾
uart_lcd_button_data[11] = button_data->cmd_tail & 0xFF; // 帧尾 uart_lcd_button_data[11] = button_data->cmd_tail & 0xFF; // 帧尾
// 大小端转换
dma_usart_send(&huart4, uart_lcd_button_data, sizeof(lcd_set_button_t)); dma_usart_send(&huart4, uart_lcd_button_data, sizeof(lcd_set_button_t));
} }
/**
* @brief LCD屏幕上的滑块数值
*
* UART接口向LCD屏幕发送命令
*
* @param slidervalue_data
* @param value
*/
static void uart_lcd_set_slidervalue(lcd_set_slidervalue_t *slidervalue_data, uint32_t value)
{
if (slidervalue_data == NULL)
{
return;
}
while (uart_lcd_state.lcd_flag != 0)
{
}
slidervalue_data->cmd_slidervalue = value; // 设置滑块数值
static uint8_t uart_lcd_slidervalue_data[sizeof(lcd_set_slidervalue_t)] = {0};
uart_lcd_slidervalue_data[0] = slidervalue_data->cmd_head; // 帧头
uart_lcd_slidervalue_data[1] = slidervalue_data->cmd_type; // 命令类型
uart_lcd_slidervalue_data[2] = slidervalue_data->cmd_ctrl_type; // 控制类型
uart_lcd_slidervalue_data[3] = (slidervalue_data->cmd_screen_id >> 8) & 0xFF; // 画面ID高位
uart_lcd_slidervalue_data[4] = slidervalue_data->cmd_screen_id & 0xFF; // 画面ID低位
uart_lcd_slidervalue_data[5] = (slidervalue_data->cmd_ctrl_id >> 8) & 0xFF; // 控件ID高位
uart_lcd_slidervalue_data[6] = slidervalue_data->cmd_ctrl_id & 0xFF; // 控件ID低位
uart_lcd_slidervalue_data[7] = (slidervalue_data->cmd_slidervalue >> 24) & 0xFF; // 滑块数值高位
uart_lcd_slidervalue_data[8] = (slidervalue_data->cmd_slidervalue >> 16) & 0xFF; // 滑块数值高位
uart_lcd_slidervalue_data[9] = (slidervalue_data->cmd_slidervalue >> 8) & 0xFF; // 滑块数值低位
uart_lcd_slidervalue_data[10] = slidervalue_data->cmd_slidervalue & 0xFF; // 滑块数值低位
uart_lcd_slidervalue_data[11] = (slidervalue_data->cmd_tail >> 24) & 0xFF; // 帧尾
uart_lcd_slidervalue_data[12] = (slidervalue_data->cmd_tail >> 16) & 0xFF; // 帧尾
uart_lcd_slidervalue_data[13] = (slidervalue_data->cmd_tail >> 8) & 0xFF; // 帧尾
uart_lcd_slidervalue_data[14] = slidervalue_data->cmd_tail & 0xFF; // 帧尾
dma_usart_send(&huart4, uart_lcd_slidervalue_data, sizeof(lcd_set_slidervalue_t));
}
/**
* @brief LCD屏幕上的文本内容
*
* UART接口向LCD屏幕发送文本内容
*
* @param txt_data lcd_set_txt_t结构体的指针
* @param value
*/
static void uart_lcd_set_txt(lcd_set_txt_t *txt_data, float value)
{
if (txt_data == NULL)
{
return;
}
while (uart_lcd_state.lcd_flag != 0)
{
}
txt_data->cmd_txt_data = value; // 设置文本内容
static uint8_t uart_lcd_txt_data[sizeof(lcd_set_txt_t)] = {0};
uart_lcd_txt_data[0] = txt_data->cmd_head; // 帧头
uart_lcd_txt_data[1] = txt_data->cmd_type; // 命令类型
uart_lcd_txt_data[2] = txt_data->cmd_ctrl_type; // 控件类型
uart_lcd_txt_data[3] = (txt_data->cmd_screen_id >> 8) & 0xFF; // 画面ID高位
uart_lcd_txt_data[4] = txt_data->cmd_screen_id & 0xFF; // 画面ID低位
uart_lcd_txt_data[5] = (txt_data->cmd_ctrl_id >> 8) & 0xFF; // 控件ID高位
uart_lcd_txt_data[6] = txt_data->cmd_ctrl_id & 0xFF; // 控件ID低位
// 将浮点数转换为字符串形式
char txt_value_str[16] = {0};
snprintf(txt_value_str, sizeof(txt_value_str), "%.2f", txt_data->cmd_txt_data);
// 将字符串内容复制到数据包中
size_t txt_len = strlen(txt_value_str);
for (size_t i = 0; i < txt_len; ++i)
{
uart_lcd_txt_data[7 + i] = txt_value_str[i]; // 文本内容
}
uart_lcd_txt_data[7 + txt_len] = 0xFF; // 帧尾
uart_lcd_txt_data[8 + txt_len] = 0xFC; // 帧尾
uart_lcd_txt_data[9 + txt_len] = 0xFF; // 帧尾
uart_lcd_txt_data[10 + txt_len] = 0xFF; // 帧尾
dma_usart_send(&huart4, uart_lcd_txt_data, 11 + txt_len);
}
static void uart_lcd_current_channel1(void) static void uart_lcd_current_channel1(void)
{ {
// 输出文本按钮状态0第一路AO状态1第二路AO状态0 // 输出文本按钮状态0第一路AO状态1第二路AO状态0
@ -134,8 +245,7 @@ void uart_lcd_draw_ipaddr(void)
void uart_lcd_init(void) void uart_lcd_init(void)
{ {
// 初始化屏幕 // 初始化屏幕
uart_lcd_state.page_num = 0; uart_lcd_state.page_num = 1;
uart_lcd_page_init(&lcd_switchscreen_data); // 初始化页面数据 uart_lcd_page_init(&lcd_switchscreen_data); // 初始化页面数据
uart_lcd_page_switch(uart_lcd_state.page_num); // 切换到第一个页面 uart_lcd_page_switch(uart_lcd_state.page_num); // 切换到第一个页面
@ -145,43 +255,49 @@ void uart_lcd_init(void)
uart_lcd_button_init(&lcd_set_button3_data, 0, 3); uart_lcd_button_init(&lcd_set_button3_data, 0, 3);
uart_lcd_button_init(&lcd_set_button4_data, 1, 1); uart_lcd_button_init(&lcd_set_button4_data, 1, 1);
uart_lcd_button_init(&lcd_set_button5_data, 1, 2); uart_lcd_button_init(&lcd_set_button5_data, 1, 2);
uart_lcd_state.current_out_channel = 0; uart_lcd_state.current_out_channel = 0;
uart_lcd_current_out_channel_switch(uart_lcd_state.current_out_channel);
uart_lcd_set_button_status(&lcd_set_button4_data, 0); // 设置按钮状态
uart_lcd_set_button_status(&lcd_set_button5_data, 0); // 设置按钮状态
// 初始化滑块
uart_lcd_slidervalue_init(&lcd_set_slidervalue1_data, 0, 4); // 第一路滑块
uart_lcd_slidervalue_init(&lcd_set_slidervalue2_data, 0, 5); // 第二路滑块
uart_lcd_state.current_value[0] = 0; uart_lcd_state.current_value[0] = 0;
uart_lcd_state.current_value[1] = 0; uart_lcd_state.current_value[1] = 0;
uart_lcd_channel_switch(uart_lcd_state.current_out_channel); uart_lcd_set_slidervalue(&lcd_set_slidervalue1_data, uart_lcd_state.current_value[0]); // 设置滑块值
HAL_Delay(10); uart_lcd_set_slidervalue(&lcd_set_slidervalue2_data, uart_lcd_state.current_value[1]); // 设置滑块值
uart_lcd_current_out(0);
HAL_Delay(10); // 初始化曲线
uart_lcd_current_out(1); uart_lcd_markcurve_init(&lcd_makecurve_data, 1, 14); // 曲线数据初始化
lcd_makecurve_data.cmd_head = 0xEE; // 帧头
lcd_makecurve_data.cmd_type = 0xB1; // 命令类型 // 初始化文本
lcd_makecurve_data.cmd_ctrl_type = 0x32; // 写曲线数据 uart_lcd_txt_init(&lcd_set_txt1_data, 1, 5);
lcd_makecurve_data.cmd_screen_id = 0x01; // 画面ID uart_lcd_txt_init(&lcd_set_txt2_data, 1, 6);
lcd_makecurve_data.cmd_ctrl_id = 0x0E; // 控件ID uart_lcd_txt_init(&lcd_set_txt3_data, 1, 7);
lcd_makecurve_data.cmd_curve_channel = 0x00; // 曲线通道 uart_lcd_set_txt(&lcd_set_txt1_data, 0.0f); // 设置文本内容
lcd_makecurve_data.cmd_tail = 0xFFFCFFFF; // 帧尾 uart_lcd_set_txt(&lcd_set_txt2_data, 0.0f); // 设置文本内容
uart_lcd_set_txt(&lcd_set_txt3_data, 0.0f); // 设置文本内容
} }
uint8_t lcd_channel[15] = {0xEE, 0xB1, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF};
void uart_lcd_current_out(uint8_t channel) void uart_lcd_current_out(uint8_t channel)
{ {
if (channel == 0) switch (channel)
{ {
lcd_channel[6] = 0x04; case 0:
lcd_channel[10] = uart_lcd_state.current_value[0]; uart_lcd_set_slidervalue(&lcd_set_slidervalue1_data, uart_lcd_state.current_value[0]); // 设置滑块值
dma_usart_send(&huart4, lcd_channel, ARRAY_LEN(lcd_channel)); break;
} case 1:
else if (channel == 1) uart_lcd_set_slidervalue(&lcd_set_slidervalue2_data, uart_lcd_state.current_value[1]); // 设置滑块值
{ break;
lcd_channel[6] = 0x05; default:
lcd_channel[10] = uart_lcd_state.current_value[1]; uart_lcd_set_slidervalue(&lcd_set_slidervalue1_data, uart_lcd_state.current_value[0]); // 设置滑块值
dma_usart_send(&huart4, lcd_channel, ARRAY_LEN(lcd_channel)); break;
} }
} }
void uart_lcd_channel_switch(uint8_t channel) void uart_lcd_current_out_channel_switch(uint8_t channel)
{ {
switch (channel) switch (channel)
{ {
@ -246,7 +362,7 @@ void uart_lcd_ecll_control_current_out(void)
} }
ec11_data.confirm_key_flag_last = 0; ec11_data.confirm_key_flag_last = 0;
ec11_data.confirm_key_flag = 0; ec11_data.confirm_key_flag = 0;
uart_lcd_channel_switch(uart_lcd_state.current_out_channel); uart_lcd_current_out_channel_switch(uart_lcd_state.current_out_channel);
} }
} }
else if (ec11_data.confirm_key_flag == 3) // 切换界面 else if (ec11_data.confirm_key_flag == 3) // 切换界面
@ -354,6 +470,7 @@ void uart_lcd_makecurve_test(void)
lcd_makecurve_data.cmd_data[0] = (current_buff[1] - 4) * 100 / 16; // 填充数据内容 lcd_makecurve_data.cmd_data[0] = (current_buff[1] - 4) * 100 / 16; // 填充数据内容
uart_lcd_makecurvet(&lcd_makecurve_data); // 调用函数发送数据 uart_lcd_makecurvet(&lcd_makecurve_data); // 调用函数发送数据
uart_lcd_set_txt(&lcd_set_txt3_data, current_buff[1]); // 设置文本内容
} }
} }

View File

@ -2,7 +2,7 @@
* @Author: wangxujie wangxujie@wuxismart.com * @Author: wangxujie wangxujie@wuxismart.com
* @Date: 2025-03-10 15:05:20 * @Date: 2025-03-10 15:05:20
* @LastEditors: wangxujie wangxujie@wuxismart.com * @LastEditors: wangxujie wangxujie@wuxismart.com
* @LastEditTime: 2025-07-30 16:50:15 * @LastEditTime: 2025-07-31 11:06:48
* @FilePath: \signal_generator\User\driver\uart_lcd.h * @FilePath: \signal_generator\User\driver\uart_lcd.h
* @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
@ -11,13 +11,13 @@
#include "main.h" #include "main.h"
#define LCD_CMD_HEAD 0xEE // LCD指令帧头 #define LCD_CMD_HEAD 0xEE // LCD指令帧头
#define LCD_CMD_TYPE 0xB1 // LCD指令类型对控件操作基本都为0xB1具体查询手册 #define LCD_CMD_TYPE 0xB1 // LCD指令类型对控件操作基本都为0xB1具体查询手册
#define LCD_CMD_CTRL_TYPE_SWITCH_SCREEN 0x00 // 切换屏幕命令 #define LCD_CMD_CTRL_TYPE_SWITCH_SCREEN 0x00 // 切换屏幕命令
#define LCD_CMD_CTRL_TYPE_SET_BUTTON 0x10 // 设置按钮状态命令 #define LCD_CMD_CTRL_TYPE_SET_BUTTON 0x10 // 设置按钮状态命令
#define LCD_CMD_CTRL_TYPE_SET_TXT 0x10 // 设置文本命令 #define LCD_CMD_CTRL_TYPE_SET_TXT 0x10 // 设置文本命令
#define LCD_CMD_CTRL_TYPE_SET_PROGRESS 0x10 // 设置进度条命令 #define LCD_CMD_CTRL_TYPE_SET_SLIDERVALUE 0x10 // 设置滑块值命令
#define LCD_CMD_CTRL_TYPE_MAKE_CURVE 0x30 // 绘制曲线命令 #define LCD_CMD_CTRL_TYPE_MAKE_CURVE 0x32 // 绘制曲线命令
#define LCD_CMD_TAIL 0xFFFCFFFF #define LCD_CMD_TAIL 0xFFFCFFFF
#define LCD_SCREEN_ID_CRUUENT 0x00 // 电流输出界面ID #define LCD_SCREEN_ID_CRUUENT 0x00 // 电流输出界面ID
@ -61,6 +61,8 @@ extern lcd_set_button_t lcd_set_button2_data;
extern lcd_set_button_t lcd_set_button3_data; extern lcd_set_button_t lcd_set_button3_data;
extern lcd_set_button_t lcd_set_button4_data; extern lcd_set_button_t lcd_set_button4_data;
extern lcd_set_button_t lcd_set_button5_data; extern lcd_set_button_t lcd_set_button5_data;
#pragma pack(1)
typedef struct typedef struct
{ {
uint8_t cmd_head; // 帧头 uint8_t cmd_head; // 帧头
@ -73,8 +75,12 @@ typedef struct
uint32_t cmd_tail; // 帧尾 uint32_t cmd_tail; // 帧尾
} lcd_set_txt_t; // lcd设置按钮状态结构体 } lcd_set_txt_t; // lcd设置按钮状态结构体
extern lcd_set_txt_t lcd_set_txt_data; #pragma pack()
extern lcd_set_txt_t lcd_set_txt1_data;
extern lcd_set_txt_t lcd_set_txt2_data;
extern lcd_set_txt_t lcd_set_txt3_data;
#pragma pack(1)
typedef struct typedef struct
{ {
uint8_t cmd_head; // 帧头 uint8_t cmd_head; // 帧头
@ -83,11 +89,13 @@ typedef struct
uint16_t cmd_screen_id; // 画面ID uint16_t cmd_screen_id; // 画面ID
uint16_t cmd_ctrl_id; // 控件ID uint16_t cmd_ctrl_id; // 控件ID
uint32_t cmd_progress_value; // 按钮状态 uint32_t cmd_slidervalue; // 滑块数值
uint32_t cmd_tail; // 帧尾 uint32_t cmd_tail; // 帧尾
} lcd_set_progress_t; // lcd设置按钮状态结构体 } lcd_set_slidervalue_t; // lcd设置滑块结构体
extern lcd_set_progress_t lcd_set_progress_data; #pragma pack(1)
extern lcd_set_slidervalue_t lcd_set_slidervalue1_data;
extern lcd_set_slidervalue_t lcd_set_slidervalue2_data;
#pragma pack(1) #pragma pack(1)
typedef struct typedef struct
@ -104,7 +112,7 @@ typedef struct
{ {
uint8_t page_num; uint8_t page_num;
uint8_t current_out_channel; // 当前输出通道 uint8_t current_out_channel; // 当前输出通道
uint8_t current_value[2]; uint32_t current_value[2];
uint8_t lcd_flag; uint8_t lcd_flag;
} uart_lcd_t; } uart_lcd_t;
extern uart_lcd_t uart_lcd_state; extern uart_lcd_t uart_lcd_state;
@ -121,7 +129,7 @@ extern ec11_t ec11_data;
void uart_lcd_draw_ipaddr(void); void uart_lcd_draw_ipaddr(void);
void uart_lcd_init(void); void uart_lcd_init(void);
void uart_lcd_current_out(uint8_t channel); void uart_lcd_current_out(uint8_t channel);
void uart_lcd_channel_switch(uint8_t channel); void uart_lcd_current_out_channel_switch(uint8_t channel);
void uart_lcd_page_switch(uint8_t page); void uart_lcd_page_switch(uint8_t page);
void uart_lcd_ecll_control_current_out(void); void uart_lcd_ecll_control_current_out(void);
void uart_lcd_ec11_control_current(void); void uart_lcd_ec11_control_current(void);