/* 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 */