20230731_XiaoFuZi_emb/ZheDaXiaoFuZi/Src/Usr/Driver/Ldrv/W25Q64JVSSIQ/McuW25Q64JvssiqDrv.h
Rjh913828050 a8560d741e 类型:重构
内容:重新整理项目文件分类
人员:任家豪
2023-10-08 16:10:23 +08:00

42 lines
1.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _MCU_W25Q64JVSSIQ_DRV_H_
#define _MCU_W25Q64JVSSIQ_DRV_H_
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#define W25Q64_FLASH_SIZE (8*1024*1024) // 8MB
#define W25Q64_FLASH_PAGE_LEN 256 //单页字节数
#define W25Q64_FLASH_PAGE_NUM 32768 // 页缓存字节数为 FLASH_SIZE_MAX / FLASH_PAGE_BUF_SIZE
#define W25Q64_FLASH_SECTOR_NUM 2048 // 区一个区4K
#define W25Q64_FLASH_BLOCK_NUM 128 // 块一个块64K
typedef void (*W25Q64JVSSIQ_SpiCs)(uint8_t flag);
typedef unsigned char (*W25Q64JVSSIQ_SpiWriteReadByte)(uint8_t Data);
typedef void (*W25Q64JVSSIQ_DelayUs)(unsigned int period);
typedef struct {
W25Q64JVSSIQ_SpiCs SpiCs;
W25Q64JVSSIQ_SpiWriteReadByte SpiWriteReadByte;
W25Q64JVSSIQ_DelayUs DelayUs;
} W25Q64JVSSIQ_OBJ;
/* 初始化FLASH */
int W25Q64_Init(W25Q64JVSSIQ_OBJ * FlashObj);
/* 读取Flash上的部分数据 */
int W25Q64_ReadBytes(W25Q64JVSSIQ_OBJ * FlashObj, unsigned int Raddr, unsigned char *Rbuf, unsigned int RbufLen);
int W25Q64_WriteBytes(W25Q64JVSSIQ_OBJ * FlashObj, unsigned int Waddr, unsigned char *Wbuf, unsigned int WbufLen);
/* 清除块数据 */
int W25Q64_EraseBlock(W25Q64JVSSIQ_OBJ * FlashObj, unsigned int BlockAddr);
/* 清除扇区数据 */
int W25Q64_EraseSector(W25Q64JVSSIQ_OBJ * FlashObj, unsigned int SectorAddr);
/* 清除FLASH数据 */
void W25Q64_EraseChip(W25Q64JVSSIQ_OBJ * FlashObj);
/* 进入低功耗 */
void W25Q64_PowerDown(W25Q64JVSSIQ_OBJ * FlashObj);
/* 唤醒 */
void W25Q64_WakeUp(W25Q64JVSSIQ_OBJ * FlashObj);
#endif