This commit is contained in:
王绪洁 2025-07-31 18:39:17 +08:00
parent d8f30dcd94
commit e186b23d28
7 changed files with 757 additions and 716 deletions

View File

@ -305,8 +305,8 @@ void start_lcd_task(void const *argument)
/* Infinite loop */ /* Infinite loop */
for (;;) for (;;)
{ {
uart_lcd_makecurve_test(); uart_lcd_refresh_screen();
vTaskDelay(30); vTaskDelay(100);
} }
/* USER CODE END start_lcd_task */ /* USER CODE END start_lcd_task */
} }

View File

@ -99,6 +99,7 @@ int main(void)
/* MCU Configuration--------------------------------------------------------*/ /* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init(); HAL_Init();
/* USER CODE BEGIN Init */ /* USER CODE BEGIN Init */

View File

@ -145,7 +145,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key> <Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U090F00028316303030303032 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name> <Name>-UB -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint/>

View File

@ -138,7 +138,7 @@
</Flash1> </Flash1>
<bUseTDR>1</bUseTDR> <bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2V8M.DLL</Flash2> <Flash2>BIN\UL2V8M.DLL</Flash2>
<Flash3></Flash3> <Flash3>"" ()</Flash3>
<Flash4></Flash4> <Flash4></Flash4>
<pFcarmOut></pFcarmOut> <pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp> <pFcarmGrp></pFcarmGrp>

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-31 14:39:12 * @LastEditTime: 2025-07-31 18:36:56
* @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
*/ */
@ -10,6 +10,7 @@
#include "usart.h" #include "usart.h"
#include "lwip.h" #include "lwip.h"
#include "tim.h" #include "tim.h"
#include "ad7124.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}; // 绘制曲线数据界面ID 1控件ID 14 lcd_makecurve_t lcd_makecurve_data = {0}; // 绘制曲线数据界面ID 1控件ID 14
@ -26,7 +27,7 @@ lcd_set_slidervalue_t lcd_set_slidervalue1_data = {0}; // 进度条设置数据
lcd_set_slidervalue_t lcd_set_slidervalue2_data = {0}; // 进度条设置数据界面ID 0控件ID 5 lcd_set_slidervalue_t lcd_set_slidervalue2_data = {0}; // 进度条设置数据界面ID 0控件ID 5
lcd_switchscreen_t lcd_switchscreen_data = {0}; // 切换画面数据 lcd_switchscreen_t lcd_switchscreen_data = {0}; // 切换画面数据
extern float current_buff[2]; extern float current_buff[2];
extern ad7124_analog_t ad7124_analog[AD7124_CHANNEL_EN_MAX];
static void uart_lcd_page_init(lcd_switchscreen_t *screen_data) static void uart_lcd_page_init(lcd_switchscreen_t *screen_data)
{ {
screen_data->cmd_head = LCD_CMD_HEAD; screen_data->cmd_head = LCD_CMD_HEAD;
@ -67,7 +68,7 @@ static void uart_lcd_markcurve_init(lcd_makecurve_t *curve_data, uint16_t screen
curve_data->cmd_screen_id = screen_id; curve_data->cmd_screen_id = screen_id;
curve_data->cmd_ctrl_id = ctrl_id; curve_data->cmd_ctrl_id = ctrl_id;
curve_data->cmd_curve_channel = 0; // 曲线通道 curve_data->cmd_curve_channel = 0; // 曲线通道
curve_data->cmd_data_len = 0; // 数据长度 curve_data->cmd_data_len = 1; // 数据长度
memset(curve_data->cmd_data, 0, sizeof(curve_data->cmd_data)); // 清空数据内容 memset(curve_data->cmd_data, 0, sizeof(curve_data->cmd_data)); // 清空数据内容
curve_data->cmd_tail = LCD_CMD_TAIL; curve_data->cmd_tail = LCD_CMD_TAIL;
} }
@ -245,14 +246,14 @@ void uart_lcd_draw_ipaddr(void)
void uart_lcd_init(void) void uart_lcd_init(void)
{ {
// 初始化屏幕 // 初始化屏幕
uart_lcd_state.page_num = 1; uart_lcd_state.page_num = LCD_SCREEN_ID_CRUUENT;
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); // 切换到第一个页面
// 初始化按钮 // 初始化按钮
uart_lcd_button_init(&lcd_set_button1_data, 0, 1); uart_lcd_button_init(&lcd_set_button1_data, LCD_SCREEN_ID_CRUUENT, 1);
uart_lcd_button_init(&lcd_set_button2_data, 0, 2); uart_lcd_button_init(&lcd_set_button2_data, LCD_SCREEN_ID_CRUUENT, 2);
uart_lcd_button_init(&lcd_set_button3_data, 0, 3); uart_lcd_button_init(&lcd_set_button3_data, LCD_SCREEN_ID_CRUUENT, 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;
@ -462,6 +463,33 @@ void uart_lcd_makecurvet(lcd_makecurve_t *makecurve_data)
dma_usart_send(&huart4, uart_makecurve_data, makecurve_data->cmd_data_len + 14); dma_usart_send(&huart4, uart_makecurve_data, makecurve_data->cmd_data_len + 14);
} }
void uart_lcd_refresh_screen(void)
{
// 刷新屏幕数据
uart_lcd_set_txt(&lcd_set_txt1_data, ad7124_analog[P1_DI1_ADC].current); // 刷新文本内容
if (ad7124_analog[P1_DI1_ADC].current > 2.1f)
{
uart_lcd_set_button_status(&lcd_set_button4_data, 0); // 设置按钮状态
}
else if (ad7124_analog[P1_DI1_ADC].current < 1.2f)
{
uart_lcd_set_button_status(&lcd_set_button4_data, 1); // 设置按钮状态
}
uart_lcd_set_txt(&lcd_set_txt2_data, ad7124_analog[P1_DI2_ADC].current); // 刷新文本内容
if (ad7124_analog[P1_DI2_ADC].current > 2.1f)
{
uart_lcd_set_button_status(&lcd_set_button5_data, 0); // 设置按钮状态
}
else if (ad7124_analog[P1_DI2_ADC].current < 1.2f)
{
uart_lcd_set_button_status(&lcd_set_button5_data, 1); // 设置按钮状态
}
lcd_makecurve_data.cmd_data[0] = (ad7124_analog[P1_AI_ADC].current - 4) * 100 / 16; // 填充数据内容
uart_lcd_makecurvet(&lcd_makecurve_data); // 调用函数发送数据
uart_lcd_set_txt(&lcd_set_txt3_data, ad7124_analog[P1_AI_ADC].current); // 设置文本内容
}
void uart_lcd_makecurve_test(void) void uart_lcd_makecurve_test(void)
{ {
lcd_makecurve_data.cmd_data_len = 1; // 假设数据长度为1 lcd_makecurve_data.cmd_data_len = 1; // 假设数据长度为1

View File

@ -134,5 +134,6 @@ 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);
void uart_lcd_makecurvet(lcd_makecurve_t *makecurve_data); void uart_lcd_makecurvet(lcd_makecurve_t *makecurve_data);
void uart_lcd_refresh_screen(void);
void uart_lcd_makecurve_test(void); void uart_lcd_makecurve_test(void);
#endif #endif