From 6ea1a42391f86e72f53042a966dae970a3fd77cb Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Fri, 17 May 2024 17:18:57 +0800
Subject: [PATCH] 阀门控制进一步完善

---
 Function/E2P/EEPROM.c |   63 +++++++++++++++++++------------
 1 files changed, 38 insertions(+), 25 deletions(-)

diff --git a/Function/E2P/EEPROM.c b/Function/E2P/EEPROM.c
index 0cf1819..3db0bcd 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,19 @@
 // 	  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);
 	  FM_ReadWriteByte((uint8_t)((addr_fit)>>16));
 	  FM_ReadWriteByte((uint8_t)((addr_fit)>>8));
 		FM_ReadWriteByte((uint8_t)((addr_fit)));
 	  FM_ReadWriteByte(data);
-	  EEPROM_CS_HIGH;
+	  EEPROM_CS_DISABLE;
 	
 
 	
@@ -112,13 +125,13 @@
 // 	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);
 	FM_ReadWriteByte((uint8_t)(addr_fit>>16));
 	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 +147,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 +172,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 +190,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 +208,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 +309,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 +412,18 @@
 	{
 		
 		
-		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);
 		FM_ReadWriteByte((uint8_t)((addr_temp)>>16));
 		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 +458,14 @@
 {
 	u16 	index;
 	
-	EEPROM_CS_LOW;
+	EEPROM_CS_ENABLE;
 	FM_ReadWriteByte(FM_READ);
 	FM_ReadWriteByte((uint8_t)(addr>>16));
 	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();	
 
 }

--
Gitblit v1.9.3