Files
BLV_C1F_Module/BasicCode/Drive/FLASH/flash.h
caocong 95916b9995 fix:修改UDP通讯中,取电变化上报机制
1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。
2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
2026-01-23 09:23:12 +08:00

72 lines
2.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 _FLASH_H_
#define _FLASH_H_
#include "stdint.h"
extern uint8_t Temp_Flash_Buff[4200];
#if (USE_CORE_TYPE == 1) //使用C1F核心板
#define Flash_WP_H GPIOA_SetBits(GPIO_Pin_3)
#define Flash_WP_L GPIOA_ResetBits(GPIO_Pin_3)
#define Flash_CS_H GPIOA_SetBits(GPIO_Pin_12)
#define Flash_CS_L GPIOA_ResetBits(GPIO_Pin_12)
#elif (USE_CORE_TYPE == 2) //使用C1核心板
#define Flash_WP_H GPIOA_SetBits(GPIO_Pin_3)
#define Flash_WP_L GPIOA_ResetBits(GPIO_Pin_3)
#define Flash_CS_H GPIOB_SetBits(GPIO_Pin_22)
#define Flash_CS_L GPIOB_ResetBits(GPIO_Pin_22)
#endif //USE_CORE_TYPE == CORE_TYPE_C1F
#define Flash_ADDRESS_MAX 0x00200000
/***********指令表**********/
//Read
#define P24Q40H_ReadData 0x03
#define P24Q40H_FastReadData 0x0B
#define P24Q40H_FastReadDual 0x3B
//Program and Erase
#define P24Q40H_PageErase 0x81
#define P24Q40H_SectorErase 0x20
#define P24Q40H_BlockErase 0xD8
#define P24Q40H_ChipErase 0xC7
#define P24Q40H_PageProgram 0x02
//Protection
#define P24Q40H_WriteEnable 0x06
#define P24Q40H_WriteDisable 0x04
//Status Register
#define P24Q40H_ReadStatusReg 0x05
#define P24Q40H_WriteStatusReg 0x01
//Other Commands
#define P24Q40H_PowerDown 0xB9
#define P24Q40H_ReleasePowerDown 0xAB
#define P24Q40H_ReadManufactureID 0x90
#define P24Q40H_ReadDeviceID 0x9F
#define P24Q40H_ResetEnable 0x66
#define P24Q40H_Reset 0x99
void Flash_Init(void); //Flash初始化
uint8_t Flash_ReadSR(void); //读取Flash状态寄存器
void Flash_WriteSR(uint8_t sr_val); //写Flash状态寄存器
void Flash_Write_Enable(void); //Flash写使能
void Flash_Write_Disable(void); //Flash写禁用
uint16_t Flash_ReadID(void); //读取Flash芯片信号
uint8_t Flash_Wait_Busy(void); //等待Flash空闲
void Flash_PowerDown(void); //进入掉电模式
void Flash_Wakeup(void); //唤醒
void Flash_Erase_Chip(void); //擦除整个芯片
void Flash_Erase_Block(uint32_t BLK_ID); //块擦除
void Flash_Erase_Sector(uint32_t DST_ID); //擦除扇区
void Flash_Erase_Page(uint32_t Page_ID);
void Flash_Erase_Pageaddr(uint32_t Page_addr);
void Flash_Read(uint8_t* pBuffer,uint16_t NumByteToRead,uint32_t ReadAddr); //Flash读取数据
void Flash_Write_Page(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t writeAddr); //Flash写数据
void Flash_Write_NoCheck(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t writeAddr); //Flash写数据自动换页
void Flash_Write(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t WriteAddr); //Flash写数据自动擦除自动换页
void Flash_APPDATA_Erase(void);
void Flash_LOGICDATA_Erase(void);
#endif