From 5312f3cb0f65ec882afe01e7e68eea910bf33403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=5F666?= <13089258+pony-six-hundred-and-sixty-six@user.noreply.gitee.com> Date: Thu, 6 Feb 2025 09:30:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/src/at_device_nt26k.c | 2 +- bsp/src/bsp_h308.c | 20 +++++++++----------- bsp/src/bsp_nt26k.c | 4 ++-- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/bsp/src/at_device_nt26k.c b/bsp/src/at_device_nt26k.c index 12c0269..e64dc07 100644 --- a/bsp/src/at_device_nt26k.c +++ b/bsp/src/at_device_nt26k.c @@ -2,7 +2,7 @@ * @Author : stark1898y 1658608470@qq.com * @Date : 2024-09-04 13:33:49 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2025-02-06 08:55:35 + * @LastEditTime: 2025-02-06 09:10:34 * @FilePath: \JT-DT-YD4N02A_RTT_MRS-NT26K\bsp\src\at_device_nt26k.c * @Description : * diff --git a/bsp/src/bsp_h308.c b/bsp/src/bsp_h308.c index 95a201d..b220536 100644 --- a/bsp/src/bsp_h308.c +++ b/bsp/src/bsp_h308.c @@ -2,7 +2,7 @@ * @Author: mbw * @Date: 2024-11-14 10:21:04 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2025-01-25 17:15:31 + * @LastEditTime: 2025-02-06 09:16:14 * @FilePath: \JT-DT-YD4N02A_RTT_MRS-NT26K\bsp\src\bsp_h308.c * @Description: * @@ -40,8 +40,9 @@ static struct rt_timer uart4_rx_timer; uint8_t sensor_rx_flag = 0; // 接收缓冲区中,已经收到的数据包数量static rt_uint8_t alarm_flag = 0, fault_flag = 0; rt_uint8_t alarm_flag = 0, fault_flag = 0; -TsH308 H308 = {0}; - +TsH308 H308 = {0}; +static rt_uint8_t alarm_status_buffer[H308_SAMPLING_TIMS] = {0}; +static rt_uint8_t fault_buf[H308_SAMPLING_TIMS] = {0}; void _UART4_RxTimeout(void *parameter) { sensor_rx_flag = 0; @@ -97,8 +98,8 @@ uint8_t H308_GetFrameData(const char *p_src, const rt_uint8_t src_len, TsH308Dat rt_uint8_t xor = 0; uint8_t ret = 0; - char *p_str = strstr(p_src, "A+"); // 查找子字符串的位置 - uint32_t offset = p_str - p_src; // 计算偏移量 + char *p_str = rt_strstr(p_src, "A+"); // 查找子字符串的位置 + uint32_t offset = p_str - p_src; // 计算偏移量 TsH308StrData _H308StrData = {0}; @@ -110,7 +111,7 @@ uint8_t H308_GetFrameData(const char *p_src, const rt_uint8_t src_len, TsH308Dat { pData->checksum = (rt_uint8_t)strtol(_H308StrData.checksum, NULL, 16); xor = H308_XorChecksum(p_str, 44); // 对数据进行异或校验 - if (xor== pData->checksum) + if (xor == pData->checksum) { pData->lel = (float)(atof(_H308StrData.vol) * 20); pData->temp = (float)atof(_H308StrData.temp); @@ -216,9 +217,7 @@ static void H308_HandleFault(uint8_t count, uint8_t threshold) static uint8_t H308_CheckData(void) { static rt_uint8_t alarm_count = 0, fault_count = 0; - static rt_uint8_t index = 0; - static rt_uint8_t alarm_status_buffer[H308_SAMPLING_TIMS] = {0}; - static rt_uint8_t fault_buf[H308_SAMPLING_TIMS] = {0}; + static rt_uint8_t index = 0; alarm_status_buffer[index] = (H308.Data.lel < (float)H308.alarm_value) ? kH308Normal : kH308Alarm; fault_buf[index] = (H308.Data.fault_code == 0) ? kH308Normal : kH308Fault; @@ -403,12 +402,11 @@ int BSP_H308_Init(void) H308_RST_OFF; H308_PWR_ON; - uart4_rx_ok_sem = rt_sem_create("uart4_rx", 0, RT_IPC_FLAG_FIFO); + uart4_rx_ok_sem = rt_sem_create("uart4_rx", 0, RT_IPC_FLAG_PRIO); if (uart4_rx_ok_sem == RT_NULL) { LOG_E("uart4_rx_ok_sem create failed"); } - // TODO:这里改的静态 rt_timer_init(&uart4_rx_timer, "_UART4_RxTimeout", _UART4_RxTimeout, RT_NULL, 200, RT_TIMER_FLAG_PERIODIC); UART4_Init(); diff --git a/bsp/src/bsp_nt26k.c b/bsp/src/bsp_nt26k.c index abf6a13..a0287cc 100644 --- a/bsp/src/bsp_nt26k.c +++ b/bsp/src/bsp_nt26k.c @@ -2,7 +2,7 @@ * @Author: mbw * @Date: 2024-10-09 08:42:14 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2025-02-06 08:41:05 + * @LastEditTime: 2025-02-06 09:27:48 * @FilePath: \JT-DT-YD4N02A_RTT_MRS-NT26K\bsp\src\bsp_nt26k.c * @Description: * @@ -140,7 +140,7 @@ static void Nt26k_Set_Event(Nt26kEvent event_type) void Nt26k_Event_Init(void) { - rt_err_t ret = rt_event_init(&at_device_event, "nt26k_event", RT_IPC_FLAG_PRIO); + rt_err_t ret = rt_event_init(&at_device_event, "nt26k_event", RT_IPC_FLAG_FIFO); if (ret == RT_EOK) { nt26k_event_initialized = RT_TRUE;