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 */
for (;;)
{
uart_lcd_makecurve_test();
vTaskDelay(30);
uart_lcd_refresh_screen();
vTaskDelay(100);
}
/* USER CODE END start_lcd_task */
}

View File

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

View File

@ -145,7 +145,7 @@
<SetRegEntry>
<Number>0</Number>
<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>
</TargetDriverDllRegistry>
<Breakpoint/>

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
* @Author: wangxujie wangxujie@wuxismart.com
* @Date: 2025-03-10 15:05:20
* @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
* @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@ -10,6 +10,7 @@
#include "usart.h"
#include "lwip.h"
#include "tim.h"
#include "ad7124.h"
extern ip4_addr_t ipaddr;
uart_lcd_t uart_lcd_state = {0};
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_switchscreen_t lcd_switchscreen_data = {0}; // 切换画面数据
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)
{
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_ctrl_id = ctrl_id;
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)); // 清空数据内容
curve_data->cmd_tail = LCD_CMD_TAIL;
}
@ -245,14 +246,14 @@ void uart_lcd_draw_ipaddr(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_switch(uart_lcd_state.page_num); // 切换到第一个页面
// 初始化按钮
uart_lcd_button_init(&lcd_set_button1_data, 0, 1);
uart_lcd_button_init(&lcd_set_button2_data, 0, 2);
uart_lcd_button_init(&lcd_set_button3_data, 0, 3);
uart_lcd_button_init(&lcd_set_button1_data, LCD_SCREEN_ID_CRUUENT, 1);
uart_lcd_button_init(&lcd_set_button2_data, LCD_SCREEN_ID_CRUUENT, 2);
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_button5_data, 1, 2);
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);
}
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)
{
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_ec11_control_current(void);
void uart_lcd_makecurvet(lcd_makecurve_t *makecurve_data);
void uart_lcd_refresh_screen(void);
void uart_lcd_makecurve_test(void);
#endif