diff --git a/BLE/DLD154Pro_Peripheral_28K/APP/rs485_700bs.c b/BLE/DLD154Pro_Peripheral_28K/APP/rs485_700bs.c index e6638c6..540ff4f 100644 --- a/BLE/DLD154Pro_Peripheral_28K/APP/rs485_700bs.c +++ b/BLE/DLD154Pro_Peripheral_28K/APP/rs485_700bs.c @@ -90,10 +90,10 @@ static void rs485_send(const uint8_t *data, uint8_t len) /* 直接从原始测量值计算线圈频率 (Hz),不依赖 BLE 报告通道 */ static uint32_t rs485_get_freq(void) { - uint32_t capvd = g_loop_acs_info.loop_capvd; // TMR0 捕获累加值 - if (capvd == 0 || loop1_LPCNT == 0) return 0; - /* freq = FREQ_SYS / (capvd / LPCNT) + 360 (补偿值) */ - return (uint32_t)((uint64_t)FREQ_SYS * loop1_LPCNT / capvd) + 360; + extern uint32_t loop1_CAPVD; // vd1_task() 实时更新的 IIR 滤波值 + if (loop1_CAPVD == 0 || loop1_LPCNT == 0) return 0; + /* freq = FREQ_SYS / (CAPVD / LPCNT) + 360 (补偿值) */ + return (uint32_t)((uint64_t)FREQ_SYS * loop1_LPCNT / loop1_CAPVD) + 360; } /* 0xFA — 查询有车状态 + 线圈好坏 */