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