串口输出监测的电流和百分比值

This commit is contained in:
王绪洁 2025-08-01 16:24:56 +08:00
parent aca21ee3a5
commit 47000e9b5d
4 changed files with 7933 additions and 4271 deletions

View File

@ -773,10 +773,14 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef *uartHandle)
*/
void dma_usart_send(UART_HandleTypeDef *huart, uint8_t *buf, uint8_t len)
{
while (uart_lcd_state.lcd_flag != 0)
if (huart == &huart4)
{
while (uart_lcd_state.lcd_flag != 0)
{
}
uart_lcd_state.lcd_flag = 1; // 设置标志位,表示正在发送数据
}
uart_lcd_state.lcd_flag = 1; // 设置标志位,表示正在发送数据
if (HAL_UART_Transmit_DMA(huart, buf, len) != HAL_OK)
{
Error_Handler();

File diff suppressed because one or more lines are too long

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-08-01 10:44:49
* @LastEditTime: 2025-08-01 16:19:35
* @FilePath: \signal_generator\User\driver\uart_lcd.c
* @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@ -465,6 +465,7 @@ void uart_lcd_makecurvet(lcd_makecurve_t *makecurve_data)
void uart_lcd_refresh_screen(void)
{
char usb_pv_str[128] = {0};
// 刷新屏幕数据
uart_lcd_set_txt(&lcd_set_txt1_data, ad7124_analog[P1_DI1_ADC].current); // 刷新文本内容
if (ad7124_analog[P1_DI1_ADC].current > 2.1f)
@ -488,6 +489,14 @@ void uart_lcd_refresh_screen(void)
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); // 设置文本内容
snprintf(usb_pv_str, sizeof(usb_pv_str), "Current = %.2fmA\t P.V = %.2f\t", (float)(ad7124_analog[P1_AI_ADC].current), (float)(ad7124_analog[P1_AI_ADC].current - 4) * 100 / 16);
size_t txt_len = strlen(usb_pv_str);
for (size_t i = 0; i < txt_len; ++i)
{
usb_uart1.tx_data[i] = usb_pv_str[i]; // 文本内容
}
dma_usart_send(&huart1, usb_uart1.tx_data, txt_len); // 发送USB数据
}
void uart_lcd_makecurve_test(void)