From fa6053f85287163f6e2d5dba690bec05cbc95f4a Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Fri, 07 Jun 2024 17:00:49 +0800
Subject: [PATCH] 增加阀控事件记录及修改阀控命令
---
Function/E2P/EEPROM.c | 135 ++++++++++++++++++++++++++++++++++++---------
1 files changed, 108 insertions(+), 27 deletions(-)
diff --git a/Function/E2P/EEPROM.c b/Function/E2P/EEPROM.c
index 0cf1819..fef2712 100644
--- a/Function/E2P/EEPROM.c
+++ b/Function/E2P/EEPROM.c
@@ -14,7 +14,7 @@
#include "eeprom.h"
#include "spi.h"
#include "delay.h"
-//#include "devicegpioinit.h"
+#include "gpio.h"
volatile uint8_t Fram_cs_flag = 0; //�洢Ƭѡ��־���Ժ�����һƬ�洢оƬ������ѡ�������һ��洢����1Ϊ��1�飬1Ϊ��2�������ġ�
@@ -23,7 +23,20 @@
//static u16 WR_times_suc=0;
-//eeprom ����1���ֽ�50us��
+void E2P_Ctrl_Gpio_Init(void)
+{
+ CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱ�ӣ�GPIO��ʹ�ܺ���
+ OutputIO(EEPROM_PWR_PORT,EEPROM_PWR_PIN,OUT_PUSHPULL);
+ OutputIO(EEPROM_CS1_PORT,EEPROM_CS1_PIN,OUT_PUSHPULL);
+ OutputIO(EEPROM_CS2_PORT,EEPROM_CS2_PIN,OUT_PUSHPULL);
+ CloseIO(EEPROM_WP_PORT,EEPROM_WP_PIN);
+ E2P_PWR_OFF;
+ EEPROM_CS_LOW;
+ EEPROM_CS_2_LOW;
+}
+
+
+
typedef union
{
@@ -74,19 +87,21 @@
// laddr = (addr16 & 0xff); //low 8 bit address
// delay_us(10);
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_WREN);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
// delay_us(10);
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_WRITE);
+ #ifndef EEPROM_ADDR_BYTES2
FM_ReadWriteByte((uint8_t)((addr_fit)>>16));
+ #endif
FM_ReadWriteByte((uint8_t)((addr_fit)>>8));
FM_ReadWriteByte((uint8_t)((addr_fit)));
FM_ReadWriteByte(data);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
@@ -112,13 +127,15 @@
// haddr = (addr16 >> 8) & 0x7f;//high 7 bit address
// laddr = (addr16 & 0xff); //low 8 bit address
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_READ);
+ #ifndef EEPROM_ADDR_BYTES2
FM_ReadWriteByte((uint8_t)(addr_fit>>16));
+ #endif
FM_ReadWriteByte((uint8_t)(addr_fit>>8));
FM_ReadWriteByte((uint8_t)(addr_fit));
data = FM_ReadWriteByte(0xff);//data = FM_ReadWriteByte(0xff);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
return data;
}
@@ -134,16 +151,16 @@
void EEPROM_stat_write(uint8 stat)
{
// delay_us(10);
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_WREN);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
// delay_us(10);
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_WRSR);
FM_ReadWriteByte(stat);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
}
@@ -159,10 +176,10 @@
uint8 stat;
delay_us(10);
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_RDSR);
stat = FM_ReadWriteByte(0xff);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
return stat;
}
@@ -177,9 +194,9 @@
void EEPROM_sleep(void)
{
delay_us(10);
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_SLEEP);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
}
@@ -195,13 +212,13 @@
uint8 i;
delay_us(10);
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_RDID);
for(i = 0;i < 9;i ++)
{
dst[i] = FM_ReadWriteByte(0xff);
}
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
}
@@ -296,7 +313,7 @@
*****************************************/
u32 EEPROM_data_read_uint32(uint32 addr16)
{
-
+
u32_un t;
t.data[0] = EEPROM_data_read(addr16);
t.data[1] = EEPROM_data_read(addr16+1);
@@ -399,18 +416,20 @@
{
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_WREN);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_WRITE);
+ #ifndef EEPROM_ADDR_BYTES2
FM_ReadWriteByte((uint8_t)((addr_temp)>>16));
+ #endif
FM_ReadWriteByte((uint8_t)((addr_temp)>>8));
FM_ReadWriteByte((uint8_t)(addr_temp));
for(i = 0;i < bytewrite;i ++)
FM_ReadWriteByte(*ptr_data ++);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
@@ -445,14 +464,16 @@
{
u16 index;
- EEPROM_CS_LOW;
+ EEPROM_CS_ENABLE;
FM_ReadWriteByte(FM_READ);
+ #ifndef EEPROM_ADDR_BYTES2
FM_ReadWriteByte((uint8_t)(addr>>16));
+ #endif
FM_ReadWriteByte((uint8_t)(addr>>8));
FM_ReadWriteByte((uint8_t)(addr));
for(index = 0;index < bytes;index ++)
data[index] = FM_ReadWriteByte(0xff);
- EEPROM_CS_HIGH;
+ EEPROM_CS_DISABLE;
EEPROM_Wait_Busy();
}
@@ -478,20 +499,80 @@
-void EEPROM_CS_2_test(void)
+void EEPROM_test(void)
{
uint8_t u8_temp;
uint8_t u8_temp_s[256];
uint8_t u8_temp_s2[256];
+ static uint16_t WR_times = 0;
+ static uint16_t WR_times_suc = 0;
u16 count_i = 0;
+
+ E2P_Ctrl_Gpio_Init();
+ SPI3_Init();
+ EEPROM_CTRL_ENABLE;
+
+ EEPROM_MultipleRead(u8_temp_s2,1000,1); //?���Է��ֵ�һ�β�����Ч����Ҫ�Ȳ���һ�Σ������������������ġ�
for(count_i=0;count_i<256;count_i++)
{
u8_temp_s[count_i] = count_i;
u8_temp_s2[count_i] = 0;
}
+ EEPROM_CTRL_DISABLE;
+ delay_ms(10);
+
+
+ EEPROM_CTRL_ENABLE;
+
+ EEPROM_MultipleWrite(u8_temp_s,0,256);
+ delay_ms(1);
+ EEPROM_MultipleRead(u8_temp_s2,0,256);
+
+
+ EEPROM_CTRL_DISABLE;
+
+
+ E2P_Ctrl_Gpio_Init();
+ SPI3_Init();
+
+ for(count_i=0;count_i<256;count_i++)
+ {
+ u8_temp_s[count_i] = 255-count_i;
+ u8_temp_s2[count_i] = 0;
+ }
+
+
+ EEPROM_CTRL_ENABLE;
+
+ EEPROM_MultipleWrite(u8_temp_s,0,256);
+ delay_ms(1);
+ EEPROM_MultipleRead(u8_temp_s2,0,256);
+
+ EEPROM_CTRL_DISABLE;
+
+
+
+
+ E2P_Ctrl_Gpio_Init();
+ SPI3_Init();
+
+ for(count_i=0;count_i<256;count_i++)
+ {
+ u8_temp_s[count_i] = 8;
+ u8_temp_s2[count_i] = 0;
+ }
+
+
+ EEPROM_CTRL_ENABLE;
+
+ EEPROM_MultipleWrite(u8_temp_s,0,256);
+ delay_ms(1);
+ EEPROM_MultipleRead(u8_temp_s2,0,256);
+
+ EEPROM_CTRL_DISABLE;
// while(WR_times <1024)
// {
@@ -522,7 +603,7 @@
//
// }
-// EEPROM_MultipleRead_CS_2(u8_temp_s2,(1000 * 256+9),256);
+
--
Gitblit v1.9.3