diff --git a/bsp/src/bsp_flash.c b/bsp/src/bsp_flash.c index 4d9ec29..8cbf725 100644 --- a/bsp/src/bsp_flash.c +++ b/bsp/src/bsp_flash.c @@ -2,7 +2,7 @@ * @Author: mbw * @Date: 2024-12-06 14:49:21 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2025-01-02 13:18:15 + * @LastEditTime: 2025-01-04 11:46:09 * @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\src\bsp_flash.c * @Description: 主要用于对一些MAC地址等关键信息进行保存和读取操作 * @@ -75,12 +75,12 @@ int Flash_Set_Valve_Num(uint8_t valve_num) /*获取无线调压器数量*/ uint8_t Flash_Get_Valve_Num(void) { - uint8_t num; + int num; EEPROM_READ(FLASH_MAC_NUM_ADDR, &num, FLASH_MAC_NUM_LEN); DelayMs(2); - if (num != 0xFF) + if ((uint8_t)num != 0xFF) { - return num; + return (uint8_t)(num & 0xFF); } else { @@ -92,13 +92,15 @@ void BSP_FLASH_Init(void) { uint32_t flash_write_flag = 0; EEPROM_READ(FLASH_INFO_WRITE_FLAG_ADDR, &flash_write_flag, FLASH_INFO_WRITE_FLAG_LEN); + logDebug("flash_write_flag = %X", flash_write_flag); DelayMs(2); if (flash_write_flag != FLASH_INFO_WRITE_FLAG_VAL) // 用以防止刷掉写入的数据 { + logDebug("flash_write_flag != FLASH_INFO_WRITE_FLAG_VAL"); flash_write_flag = FLASH_INFO_WRITE_FLAG_VAL; // 擦除数据 EEPROM_ERASE(FLASH_INFO_ADDR, DATA_FLASH_PAGE_SIZE); // 擦除待写区 - DelayMs(2); + DelayMs(2); EEPROM_WRITE(FLASH_INFO_WRITE_FLAG_ADDR, &flash_write_flag, FLASH_INFO_WRITE_FLAG_LEN); DelayMs(2); } diff --git a/bsp/src/bsp_valve.c b/bsp/src/bsp_valve.c index 369a788..a7db48e 100644 --- a/bsp/src/bsp_valve.c +++ b/bsp/src/bsp_valve.c @@ -2,7 +2,7 @@ * @Author: mbw * @Date: 2024-12-09 11:40:10 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2025-01-02 14:44:19 + * @LastEditTime: 2025-01-04 13:02:54 * @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\src\bsp_valve.c * @Description: * @@ -139,11 +139,8 @@ int BSP_Bt_Register_Valve(uint8_t *data, uint8_t len) else { uint8_t num = Flash_Get_Valve_Num(); - logDebug("num : %02X ", num); Flash_Set_Valve_Num(num + 1); - logDebug("写入成功,当前阀门数量为: %d", num + 1); BSP_Bt_Valve_Updata(); // 更新阀门信息 - } } else @@ -283,9 +280,8 @@ void BSP_Bt_Valve_Updata(void) for (int i = 1; i < MAX_VALVE_NUM; i++) // 这个循环是为了将数据拷贝到valve_list中, 并且保证id号和flash对应起来 { - if (Flash_Get_Mac_Addr(mac, i) == 0) // 说明有MAC数据 + if (Flash_Get_Mac_Addr(valve_list.valve_data[cnt].valve_mac, i) == 0) // 说明有MAC数据 { - tmos_memcpy(valve_list.valve_data[cnt].valve_mac, mac, 6); // 这样做的目的就是读取方便,只需要根据flash中读取到的数量进行读取前N个值 valve_list.valve_data[cnt].valve_id = i; logDebug("updata valve_id: %d, valve_mac: %02X %02X %02X %02X %02X %02X", valve_list.valve_data[cnt].valve_id,