修改了读地址逻辑

This commit is contained in:
小马_666 2025-01-04 13:06:41 +08:00
parent b422fa964d
commit 5fc37391d4
2 changed files with 9 additions and 11 deletions

View File

@ -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,9 +92,11 @@ 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); // 擦除待写区

View File

@ -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,