优化实现串口驱动,SPI驱动 W25QXX还需要初始化验证修复

This commit is contained in:
冯佳
2026-01-23 09:59:43 +08:00
parent 51e8d79f78
commit b166bee1a9
69 changed files with 6253 additions and 1178 deletions

86
BSP/Inc/bsp_w25qxx.h Normal file
View File

@ -0,0 +1,86 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : bsp_w25qxx.h
* @brief : BSP layer for W25QXX flash memory
******************************************************************************
*/
/* USER CODE END Header */
#ifndef BSP_W25QXX_H
#define BSP_W25QXX_H
#include "w25qxx.h"
#include "hal_spi.h"
#include "hal_gpio.h"
/**
* @brief W25QXX chip select pin configuration
*/
#define W25QXX_CS_PORT HAL_GPIO_PORT_B
#define W25QXX_CS_PIN HAL_GPIO_PIN_0
/**
* @brief W25QXX SPI instance
*/
#define W25QXX_SPI_INSTANCE HAL_SPI_INSTANCE_1
/**
* @brief Initialize W25QXX flash memory
* @retval true if initialization is successful, false otherwise
*/
bool bsp_w25qxx_init(void);
/**
* @brief Get W25QXX device information
* @param info Pointer to device information structure to fill
* @retval true if successful, false otherwise
*/
bool bsp_w25qxx_get_device_info(w25qxx_device_info_t *info);
/**
* @brief Read data from W25QXX flash memory
* @param address Starting address to read from
* @param data Pointer to data buffer to store read data
* @param size Size of data to read
* @retval true if read is successful, false otherwise
*/
bool bsp_w25qxx_read(uint32_t address, uint8_t *data, uint32_t size);
/**
* @brief Write data to W25QXX flash memory
* @param address Starting address to write to
* @param data Pointer to data buffer to write
* @param size Size of data to write
* @retval true if write is successful, false otherwise
*/
bool bsp_w25qxx_write(uint32_t address, const uint8_t *data, uint32_t size);
/**
* @brief Erase 4KB block
* @param address Address within the block to erase
* @retval true if erase is successful, false otherwise
*/
bool bsp_w25qxx_erase_block_4kb(uint32_t address);
/**
* @brief Erase 32KB block
* @param address Address within the block to erase
* @retval true if erase is successful, false otherwise
*/
bool bsp_w25qxx_erase_block_32kb(uint32_t address);
/**
* @brief Erase 64KB block
* @param address Address within the block to erase
* @retval true if erase is successful, false otherwise
*/
bool bsp_w25qxx_erase_block_64kb(uint32_t address);
/**
* @brief Erase entire chip
* @retval true if erase is successful, false otherwise
*/
bool bsp_w25qxx_erase_chip(void);
#endif /* BSP_W25QXX_H */