update
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
#include "bsp_w25q.h"
|
||||
|
||||
#include "spi.h"
|
||||
#include "main.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "app_leakage.h"
|
||||
|
||||
/* spi flash 片选引脚 - pb12 */
|
||||
#define W25Q32_CS_LOW() HAL_GPIO_WritePin(SPI2_CS_GPIO_Port, SPI2_CS_Pin, GPIO_PIN_RESET)
|
||||
@@ -46,10 +50,57 @@ w25q32_t w25q32 = {
|
||||
};
|
||||
|
||||
|
||||
/* 从W25Q32读取设备信息到app_leakage */
|
||||
static void gui_tjc_hmi_read_device_info_from_w25q(void)
|
||||
{
|
||||
/* 创建一个临时缓冲区 */
|
||||
app_leakage_sub_device_flash_data_t temp_buffer[APP_LEAKAGE_SUB_DEVICE_NUM];
|
||||
|
||||
/* 一次性读取所有设备信息 */
|
||||
w25q32.read(W25Q32_DEVICE_INFO_ADDR,
|
||||
(uint8_t*)temp_buffer,
|
||||
DEVICE_INFO_STORAGE_SIZE);
|
||||
|
||||
/* 检查数据有效性 */
|
||||
uint8_t data_valid = 1;
|
||||
for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
|
||||
{
|
||||
/* 如果所有字段都是0xFF,说明是空数据 */
|
||||
if(temp_buffer[i].state == 0xFF &&
|
||||
temp_buffer[i].com == 0xFF &&
|
||||
temp_buffer[i].modbus_id == 0xFF)
|
||||
{
|
||||
data_valid = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(data_valid)
|
||||
{
|
||||
/* 复制到app_leakage结构体中 */
|
||||
for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
|
||||
{
|
||||
leakage.sub_device_data[i].flash_data = temp_buffer[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Flash为空,初始化设备信息为默认值 */
|
||||
for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
|
||||
{
|
||||
memset(&leakage.sub_device_data[i].flash_data, 0,
|
||||
sizeof(app_leakage_sub_device_flash_data_t));
|
||||
leakage.sub_device_data[i].flash_data.state = DISABLE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* 初始化函数 */
|
||||
static void w25q32_init(void) {
|
||||
W25Q32_CS_HIGH(); /* 初始时片选拉高 */
|
||||
w25q32_wake_up(); /* 唤醒芯片 */
|
||||
gui_tjc_hmi_read_device_info_from_w25q();
|
||||
}
|
||||
|
||||
/* 读取芯片id */
|
||||
|
||||
Reference in New Issue
Block a user