fix:修改UDP通讯中,取电变化上报机制

1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。
2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
This commit is contained in:
caocong
2026-01-23 09:23:12 +08:00
commit 95916b9995
622 changed files with 1336094 additions and 0 deletions

View File

@@ -0,0 +1,290 @@
/*******************************************************************************
* Function Name : APS6404L-3SQR SRAM -- 8M*8bit
* Description : SRAM<41><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
#include "includes.h"
/*******************************************************************************
* Function Name : SPI_SRAM_Init
* Description : SRAM<41><4D>ʼ<EFBFBD><CABC>
* Input : None
* Return : None
*******************************************************************************/
void SPI_SRAM_Init(void)
{
#if (USE_CORE_TYPE == 1) //ʹ<><CAB9>C1F<31><46><EFBFBD>İ<EFBFBD>
//<2F><><EFBFBD><EFBFBD>SPI GPIO
GPIOA_ModeCfg(GPIO_Pin_12, GPIO_ModeOut_PP_20mA); //CS
GPIOA_SetBits( GPIO_Pin_13 );
GPIOA_ModeCfg(GPIO_Pin_13|GPIO_Pin_14, GPIO_ModeOut_PP_5mA);
GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeIN_PU); //MISO
//SPI <20><><EFBFBD><EFBFBD>ģʽ
SPI0_MasterDefInit( );
SPI0_DataMode(Mode0_HighBitINFront);
SRAM_CE_L; //SRAM<41><4D>flashʹ<68><CAB9>ͬһƬѡ<C6AC>ţ<EFBFBD>Ĭ<EFBFBD><C4AC>ѡSRAM
#elif (USE_CORE_TYPE == 2) //ʹ<><CAB9>C1<43><31><EFBFBD>İ<EFBFBD>
//<2F><><EFBFBD><EFBFBD>SPI GPIO
GPIOA_ModeCfg(GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14, GPIO_ModeOut_PP_5mA);
//SPI <20><><EFBFBD><EFBFBD>ģʽ
SPI0_MasterDefInit( );
SPI0_DataMode(Mode0_HighBitINFront);
SRAM_CE_H;
#endif //USE_CORE_TYPE == CORE_TYPE_C1F
}
/*******************************************************************************
* Function Name : SRAM_Write_Byte
* Description : SRAMд<4D>ֽ<EFBFBD>
* Input :
wdate : <20><>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
add <09><><EFBFBD>ֽ<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ĵ<EFBFBD>ַ
* Return : None
*******************************************************************************/
void SRAM_Write_Byte(uint8_t wdate,uint32_t add)
{
uint8_t Hadd16=0x00,Hadd8=0x00,Ladd=0x00;
Ladd=add;
Hadd8=add>>8;
Hadd16=add>>16;
if(add >= SRAM_ADDRESS_MAX) return ;
SRAM_CE_L;
SPI0_MasterSendByte(SRAM_CMD_Write);
SPI0_MasterSendByte(Hadd16);
SPI0_MasterSendByte(Hadd8);
SPI0_MasterSendByte(Ladd);
SPI0_MasterSendByte(wdate);
SRAM_CE_H;
DelayUs(10);
}
/*******************************************************************************
* Function Name : SRAM_Read_Byte
* Description : SRAM<41><4D><EFBFBD>ֽ<EFBFBD>
* Input :
add <09><><EFBFBD><EFBFBD>ȡ<EFBFBD>ֽڵĵ<DAB5>ַ
* Return : <20><><EFBFBD>ض<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD>
*******************************************************************************/
uint8_t SRAM_Read_Byte(uint32_t add)
{
uint8_t Hadd8=0x00,Hadd16=0x00,Ladd=0x00,rdate=0x00;
Ladd=add;
Hadd8=add>>8;
Hadd16=add>>16;
if(add >= SRAM_ADDRESS_MAX) return 0x00;
SRAM_CE_L;
SPI0_MasterSendByte(SRAM_CMD_Read);
SPI0_MasterSendByte(Hadd16);
SPI0_MasterSendByte(Hadd8);
SPI0_MasterSendByte(Ladd);
rdate = SPI0_MasterRecvByte();
SRAM_CE_H;
// if(rdate == 0xFF)
// {
// if(GPIOB_ReadPortPin(GPIO_Pin_3) == 0x00)
// {
// GPIOB_SetBits(GPIO_Pin_3);
// }else{
// GPIOB_ResetBits(GPIO_Pin_3);
// }
// }
DelayUs(10);
return rdate;
}
/*******************************************************************************
* Function Name : SRAM_Write_Word
* Description : SRAMдuint16_t<5F><74><EFBFBD><EFBFBD> -- <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* Input :
wdate : <20><>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
add <09><><EFBFBD>ֽ<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ĵ<EFBFBD>ַ
* Return : <20><><EFBFBD>ض<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD>
*******************************************************************************/
void SRAM_Write_Word(uint16_t wdate,uint32_t add)
{
SRAM_Write_Byte((uint8_t)(wdate & 0xFF),add);
SRAM_Write_Byte((uint8_t)((wdate >> 8) & 0xFF),add + 1);
}
/*******************************************************************************
* Function Name : SRAM_Read_Word
* Description : SRAMдuint16_t<5F><74><EFBFBD><EFBFBD> -- <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* Input :
add <09><><EFBFBD><EFBFBD>ȡ<EFBFBD>ֵĵ<D6B5>ַ
* Return : <20><><EFBFBD>ض<EFBFBD>ȡ<EFBFBD><C8A1>
*******************************************************************************/
uint16_t SRAM_Read_Word(uint32_t add)
{
uint16_t rev = 0;
rev = SRAM_Read_Byte(add + 1);
rev <<= 8;
rev |= SRAM_Read_Byte(add);
return rev;
}
/*******************************************************************************
* Function Name : SRAM_Write_DW
* Description : SRAMдuint32_t<5F><74><EFBFBD><EFBFBD> -- <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* Input :
wdate : <20><>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD>˫<EFBFBD><CBAB>
add <09><>˫<EFBFBD><CBAB>д<EFBFBD><D0B4><EFBFBD>ĵ<EFBFBD>ַ
* Return : <20><><EFBFBD>ض<EFBFBD>ȡ˫<C8A1><CBAB>
*******************************************************************************/
void SRAM_Write_DW(uint32_t wdate,uint32_t add)
{
SRAM_Write_Byte((uint8_t)(wdate & 0xFF),add);
SRAM_Write_Byte((uint8_t)((wdate >> 8) & 0xFF),add + 1);
SRAM_Write_Byte((uint8_t)((wdate >> 16) & 0xFF),add + 2);
SRAM_Write_Byte((uint8_t)((wdate >> 24) & 0xFF),add + 3);
}
/*******************************************************************************
* Function Name : SRAM_Read_DW
* Description : SRAMдuint32_t<5F><74><EFBFBD><EFBFBD> -- <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* Input :
add <09><><EFBFBD><EFBFBD>ȡ˫<C8A1>ֵĵ<D6B5>ַ
* Return : <20><><EFBFBD>ض<EFBFBD>ȡ˫<C8A1><CBAB>
*******************************************************************************/
uint32_t SRAM_Read_DW(uint32_t add)
{
uint32_t rev = 0;
rev = SRAM_Read_Byte(add + 3);
rev <<= 8;
rev |= SRAM_Read_Byte(add + 2);
rev <<= 8;
rev |= SRAM_Read_Byte(add + 1);
rev <<= 8;
rev |= SRAM_Read_Byte(add);
return rev;
}
/*******************************************************************************
* Function Name : SRAM_Write_Buff
* Description : SRAM FIFO<46><4F>ʽд<CABD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* Input :
wbuff : <20><>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
len : д<><D0B4><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD> -- <20><><EFBFBD><EFBFBD>4095<39>ֽڳ<D6BD><DAB3><EFBFBD>
add <09><><EFBFBD>ֽ<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ĵ<EFBFBD>ַ
* Return : None
*******************************************************************************/
void SRAM_Write_Buff(uint8_t* wbuff,uint16_t len,uint32_t add)
{
uint8_t Hadd16=0x00,Hadd8=0x00,Ladd=0x00;
Ladd=add;
Hadd8=add>>8;
Hadd16=add>>16;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
if(add + len >= SRAM_ADDRESS_MAX) return ;
SRAM_CE_L;
SPI0_MasterSendByte(SRAM_CMD_Write);
SPI0_MasterSendByte(Hadd16);
SPI0_MasterSendByte(Hadd8);
SPI0_MasterSendByte(Ladd);
SPI0_MasterTrans(wbuff,len);
SRAM_CE_H;
DelayUs(10);
}
/*******************************************************************************
* Function Name : SRAM_Read_Buff
* Description : SRAM FIFO<46><4F>ʽ<EFBFBD><CABD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
* Input :
rbuff : <20><>Ҫ<EFBFBD><D2AA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
len : <20><>ȡ<EFBFBD><C8A1><EFBFBD>ݵij<DDB5><C4B3><EFBFBD> -- <20><><EFBFBD><EFBFBD>4095<39>ֽڳ<D6BD><DAB3><EFBFBD>
add <09><><EFBFBD>ֽ<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ĵ<EFBFBD>ַ
* Return : None
*******************************************************************************/
void SRAM_Read_Buff(uint8_t* rbuff,uint16_t len,uint32_t add)
{
uint8_t Hadd16=0x00,Hadd8=0x00,Ladd=0x00;
Ladd=add;
Hadd8=add>>8;
Hadd16=add>>16;
if(add + len >= SRAM_ADDRESS_MAX) return ;
SRAM_CE_L;
SPI0_MasterSendByte(SRAM_CMD_Read);
SPI0_MasterSendByte(Hadd16);
SPI0_MasterSendByte(Hadd8);
SPI0_MasterSendByte(Ladd);
SPI0_MasterRecv(rbuff,len);
SRAM_CE_H;
DelayUs(10);
}
/*******************************************************************************
* Function Name : SRAM_DMA_Write_Buff
* Description : SRAM DMA<4D><41>ʽд<CABD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* Input :
wbuff : <20><>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
len : д<><D0B4><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD> -- <20><><EFBFBD><EFBFBD>4095<39>ֽڳ<D6BD><DAB3><EFBFBD>
add <09><><EFBFBD>ֽ<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ĵ<EFBFBD>ַ
* Return : None
*******************************************************************************/
void SRAM_DMA_Write_Buff(uint8_t* wbuff,uint16_t len,uint32_t add)
{
uint8_t Hadd16=0x00,Hadd8=0x00,Ladd=0x00;
Ladd=add;
Hadd8=add>>8;
Hadd16=add>>16;
if(add + len >= SRAM_ADDRESS_MAX) return ;
SRAM_CE_L;
SPI0_MasterSendByte(SRAM_CMD_Write);
SPI0_MasterSendByte(Hadd16);
SPI0_MasterSendByte(Hadd8);
SPI0_MasterSendByte(Ladd);
SPI0_MasterDMATrans(wbuff,len);
SRAM_CE_H;
DelayUs(10);
}
/*******************************************************************************
* Function Name : SRAM_DMA_Read_Buff
* Description : SRAM DMA<4D><41>ʽ<EFBFBD><CABD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
* Input :
rbuff : <20><>Ҫ<EFBFBD><D2AA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
len : <20><>ȡ<EFBFBD><C8A1><EFBFBD>ݵij<DDB5><C4B3><EFBFBD> -- <20><><EFBFBD><EFBFBD>4095<39>ֽڳ<D6BD><DAB3><EFBFBD>
add <09><><EFBFBD>ֽ<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ĵ<EFBFBD>ַ
* Return : None
*******************************************************************************/
void SRAM_DMA_Read_Buff(uint8_t* rbuff,uint16_t len,uint32_t add)
{
uint8_t Hadd16=0x00,Hadd8=0x00,Ladd=0x00;
Ladd=add;
Hadd8=add>>8;
Hadd16=add>>16;
if(add + len >= SRAM_ADDRESS_MAX) return ;
SRAM_CE_L;
SPI0_MasterSendByte(SRAM_CMD_Read);
SPI0_MasterSendByte(Hadd16);
SPI0_MasterSendByte(Hadd8);
SPI0_MasterSendByte(Ladd);
SPI0_MasterDMARecv(rbuff,len);
SRAM_CE_H;
DelayUs(10);
}