网络通,测试flash
This commit is contained in:
95
Src/main.c
95
Src/main.c
@@ -27,6 +27,8 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "ch395f.h"
|
||||
#include "gd5f2gq5ue.h"
|
||||
#include "flashdb.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
@@ -92,10 +94,93 @@ int main(void)
|
||||
MX_GPIO_Init();
|
||||
MX_USART1_UART_Init();
|
||||
MX_SPI2_Init();
|
||||
MX_SPI1_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
/* CH395F 初始化 */
|
||||
ch395f_reset();
|
||||
ch395f_init();
|
||||
char dbg[64];
|
||||
uint8_t mac[6];
|
||||
|
||||
ch395f_reset();
|
||||
|
||||
/* [1/5] SPI 通信检测 */
|
||||
sprintf(dbg, "[1/5] CH395F %s\r\n",
|
||||
(ch395f_check_exist() == CH395F_STATUS_OK) ? "detected" : "ERROR: not detected");
|
||||
HAL_UART_Transmit(&huart1, (uint8_t*)dbg, strlen(dbg), 1000);
|
||||
|
||||
/* [2/5] 芯片版本 */
|
||||
sprintf(dbg, "[2/5] CH395F version: 0x%02X\r\n", ch395f_get_version());
|
||||
HAL_UART_Transmit(&huart1, (uint8_t*)dbg, strlen(dbg), 1000);
|
||||
|
||||
/* 配置 IP/网关/掩码 */
|
||||
{
|
||||
uint8_t ip[4] = {192, 168, 1, 100};
|
||||
uint8_t gw[4] = {192, 168, 1, 1};
|
||||
uint8_t mask[4] = {255, 255, 255, 0};
|
||||
ch395f_set_ip_addr(ip);
|
||||
ch395f_set_gwip_addr(gw);
|
||||
ch395f_set_mask_addr(mask);
|
||||
}
|
||||
|
||||
/* [3/5] 协议栈初始化 */
|
||||
sprintf(dbg, "[3/5] Protocol stack init %s\r\n",
|
||||
(ch395f_init() == CH395F_STATUS_OK) ? "OK" : "ERROR");
|
||||
HAL_UART_Transmit(&huart1, (uint8_t*)dbg, strlen(dbg), 1000);
|
||||
|
||||
/* [4/5] MAC 地址 */
|
||||
ch395f_get_mac_addr(mac);
|
||||
sprintf(dbg, "[4/5] MAC: %02X:%02X:%02X:%02X:%02X:%02X\r\n",
|
||||
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||
HAL_UART_Transmit(&huart1, (uint8_t*)dbg, strlen(dbg), 1000);
|
||||
|
||||
/* [5/5] 强制 100M 全双工后检测 PHY */
|
||||
ch395f_set_phy(CH395F_PHY_100M_FULL);
|
||||
HAL_Delay(3000);
|
||||
{
|
||||
uint8_t s = ch395f_get_phy_status();
|
||||
const char *desc = (s == CH395F_PHY_DISCONN) ? "DISCONNECTED" :
|
||||
(s == CH395F_PHY_100M_FULL) ? "100M FULL" :
|
||||
(s == CH395F_PHY_100M_HALF) ? "100M HALF" :
|
||||
(s == CH395F_PHY_10M_FULL) ? "10M FULL" :
|
||||
(s == CH395F_PHY_10M_HALF) ? "10M HALF" : "RESERVED";
|
||||
sprintf(dbg, "[5/5] PHY: 0x%02X (%s)\r\n", s, desc);
|
||||
HAL_UART_Transmit(&huart1, (uint8_t*)dbg, strlen(dbg), 1000);
|
||||
}
|
||||
|
||||
/* ===================== FlashDB KVDB 测试 ===================== */
|
||||
{
|
||||
uint8_t gd_mid, gd_did;
|
||||
int ret;
|
||||
|
||||
/* 检测 GD5F2GQ5UE */
|
||||
ret = gd5f2gq5ue_read_id(&gd_mid, &gd_did);
|
||||
sprintf(dbg, "[GD5F] ID: MID=0x%02X DID=0x%02X %s\r\n",
|
||||
gd_mid, gd_did,
|
||||
(ret == GD5F_OK && gd_mid == 0xC8 && gd_did == 0x52) ? "OK" : "FAIL");
|
||||
HAL_UART_Transmit(&huart1, (uint8_t*)dbg, strlen(dbg), 1000);
|
||||
|
||||
/* 初始化 FlashDB KVDB */
|
||||
{
|
||||
static struct fdb_kvdb kvdb;
|
||||
ret = fdb_kvdb_init(&kvdb, "db", "fdb_kvdb1", NULL, NULL);
|
||||
sprintf(dbg, "[FlashDB] KVDB init: %s\r\n",
|
||||
(ret == FDB_NO_ERR) ? "OK" : "FAIL");
|
||||
HAL_UART_Transmit(&huart1, (uint8_t*)dbg, strlen(dbg), 1000);
|
||||
|
||||
if (ret == FDB_NO_ERR) {
|
||||
/* 写入测试 KV */
|
||||
fdb_kv_set(&kvdb, "test_key", "hello_flashdb");
|
||||
HAL_UART_Transmit(&huart1, (uint8_t*)"[FlashDB] KV set OK\r\n", 21, 1000);
|
||||
|
||||
/* 读取测试 KV */
|
||||
char *val = fdb_kv_get(&kvdb, "test_key");
|
||||
if (val) {
|
||||
sprintf(dbg, "[FlashDB] KV get: %s\r\n", val);
|
||||
} else {
|
||||
sprintf(dbg, "[FlashDB] KV get: NULL\r\n");
|
||||
}
|
||||
HAL_UART_Transmit(&huart1, (uint8_t*)dbg, strlen(dbg), 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Infinite loop */
|
||||
@@ -111,7 +196,7 @@ int main(void)
|
||||
HAL_GPIO_TogglePin(LED4_GPIO_Port, LED4_Pin);
|
||||
HAL_GPIO_TogglePin(LED5_GPIO_Port, LED5_Pin);
|
||||
HAL_GPIO_TogglePin(LED6_GPIO_Port, LED6_Pin);
|
||||
HAL_UART_Transmit(&huart1, str, strlen((char*)str), 1000);
|
||||
//HAL_UART_Transmit(&huart1, str, strlen((char*)str), 1000);
|
||||
HAL_Delay(500);
|
||||
}
|
||||
/* USER CODE END 3 */
|
||||
@@ -195,4 +280,4 @@ void assert_failed(uint8_t *file, uint32_t line)
|
||||
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
|
||||
/* USER CODE END 6 */
|
||||
}
|
||||
#endif /* USE_FULL_ASSERT */
|
||||
#endif /* USE_FULL_ASSERT */
|
||||
|
||||
Reference in New Issue
Block a user