From 823153c8eab3995ee00738209251f3881aaa01b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=B1=20=E6=B2=88?= <2401809606@qq.com> Date: Sun, 28 Dec 2025 20:21:55 +0800 Subject: [PATCH] =?UTF-8?q?ahtx0=E6=B8=A9=E6=B9=BF=E5=BA=A6=E5=88=B0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=B8=A9=E6=B9=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/PLC_link.c | 8 +++++++- applications/data/Variable.c | 3 +++ applications/drv/drv_aht20.c | 10 ++++------ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/applications/PLC_link.c b/applications/PLC_link.c index bdbb589..9395e72 100644 --- a/applications/PLC_link.c +++ b/applications/PLC_link.c @@ -27,6 +27,8 @@ static const mb_backend_param_t mb_bkd_prm = { .rtu.lvl = 0 //控制发送电平 }; +extern unsigned int sys_temperature; +extern unsigned int sys_humidity; static void mb_plc_read_regs(mb_inst_t *hinst) { @@ -37,9 +39,13 @@ static void mb_plc_read_regs(mb_inst_t *hinst) } u16 regs[64]; + + regs[0]=sys_temperature; + regs[1]=sys_humidity; + int addr = 7000; int nb = 10; - int total = mb_read_input_regs(hinst, addr, nb, regs); + int total = mb_write_regs(hinst, addr, nb, regs); if (total <= 0) { return; diff --git a/applications/data/Variable.c b/applications/data/Variable.c index 8ad5e26..f919a7a 100644 --- a/applications/data/Variable.c +++ b/applications/data/Variable.c @@ -3,6 +3,9 @@ // ===== 实际定义 ===== +unsigned int sys_temperature; +unsigned int sys_humidity; + // 动态数据缓冲区(初始化为 NULL,后续分配) char *DATA_dat; char DATA_machins[3]; diff --git a/applications/drv/drv_aht20.c b/applications/drv/drv_aht20.c index d29848b..ced01e4 100644 --- a/applications/drv/drv_aht20.c +++ b/applications/drv/drv_aht20.c @@ -134,7 +134,9 @@ static void aht20_parse_data(const rt_uint8_t raw[6], rt_int32_t *temp, rt_int32 static void aht20_thread_entry(void *parameter) { rt_uint8_t raw_data[6]; - rt_int32_t temperature, humidity; + + extern unsigned int sys_temperature; + extern unsigned int sys_humidity; while (1) { @@ -162,11 +164,7 @@ static void aht20_thread_entry(void *parameter) continue; } - aht20_parse_data(raw_data, &temperature, &humidity); - - LOG_I("Temp: %d.%dC, Humidity: %d.%dRH", - temperature / 10, temperature % 10, - humidity / 10, humidity % 10); + aht20_parse_data(raw_data, &sys_temperature, &sys_humidity); rt_thread_mdelay(5000); // 每 2 秒读取一次 }