100 lines
3.6 KiB
C
100 lines
3.6 KiB
C
/*
|
|
* @Author: wujunchao wujunchao@wuxismart.com
|
|
* @Date: 2025-03-17 14:38:22
|
|
* @LastEditors: wujunchao wujunchao@wuxismart.com
|
|
* @LastEditTime: 2025-04-01 14:42:01
|
|
* @FilePath: \signal_generator\App\APP_WU\Inc\eeprom_spi.h
|
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
*/
|
|
#ifndef _EEPROM_SPI_H
|
|
#define _EEPROM_SPI_H
|
|
|
|
#include "apps_gather.h"
|
|
|
|
//模拟SPI, CS->PB9, WR->PD6, SCLK->PB3, MOSI->PB5, MISO->PB4
|
|
|
|
//CS->PB9
|
|
#define EEPROM_CS_H HAL_GPIO_WritePin(EEPROM_CS_GPIO_Port, EEPROM_CS_Pin, GPIO_PIN_SET)
|
|
#define EEPROM_CS_L HAL_GPIO_WritePin(EEPROM_CS_GPIO_Port, EEPROM_CS_Pin, GPIO_PIN_RESET)
|
|
|
|
//WR->PD6
|
|
#define EEPROM_WR_H HAL_GPIO_WritePin(EEPROM_WR_GPIO_Port, EEPROM_WR_Pin, GPIO_PIN_SET)
|
|
#define EEPROM_WR_L HAL_GPIO_WritePin(EEPROM_WR_GPIO_Port, EEPROM_WR_Pin, GPIO_PIN_RESET)
|
|
|
|
//SCLK->PB3
|
|
#define EEPROM_SCLK_H HAL_GPIO_WritePin(EEPROM_SCLK_GPIO_Port, EEPROM_SCLK_Pin, GPIO_PIN_SET)
|
|
#define EEPROM_SCLK_L HAL_GPIO_WritePin(EEPROM_SCLK_GPIO_Port, EEPROM_SCLK_Pin, GPIO_PIN_RESET)
|
|
|
|
//MOSI->PB5
|
|
#define EEPROM_MOSI_H HAL_GPIO_WritePin(EEPROM_MOSI_GPIO_Port, EEPROM_MOSI_Pin, GPIO_PIN_SET)
|
|
#define EEPROM_MOSI_L HAL_GPIO_WritePin(EEPROM_MOSI_GPIO_Port, EEPROM_MOSI_Pin, GPIO_PIN_RESET)
|
|
|
|
//MISO->PB4
|
|
#define EEPROM_MISO HAL_GPIO_ReadPin(EEPROM_MISO_GPIO_Port, EEPROM_MISO_Pin)
|
|
|
|
//eeprom cmd
|
|
#define WRITE_ENABLE 0x06
|
|
#define WRITE_DISABLE 0x04
|
|
#define WRITE_MEMORY 0x02
|
|
#define READ_MEMORY 0x03
|
|
#define READ_STATUS 0x05
|
|
|
|
//my address
|
|
//{
|
|
#define DEVICE_CHECK 0x0007D0
|
|
#define EE_START_ADDR 0x000000
|
|
#define EE_INTERVAL 16
|
|
|
|
#define VOL_V_UP_ADDR EE_START_ADDR
|
|
#define VOL_V_LOW_ADDR (VOL_V_UP_ADDR + EE_INTERVAL)
|
|
#define VOL_MV_UP_ADDR (VOL_V_LOW_ADDR + EE_INTERVAL)
|
|
#define VOL_MV_LOW_ADDR (VOL_MV_UP_ADDR + EE_INTERVAL)
|
|
#define CUR_UP_ADDR (VOL_MV_LOW_ADDR + EE_INTERVAL)
|
|
#define CUR_LOW_ADDR (CUR_UP_ADDR + EE_INTERVAL)
|
|
#define RES_UP_ADDR (CUR_LOW_ADDR + EE_INTERVAL)
|
|
#define RES_LOW_ADDR (RES_UP_ADDR + EE_INTERVAL)
|
|
#define FRE_UP_ADDR (RES_LOW_ADDR + EE_INTERVAL)
|
|
#define FRE_LOW_ADDR (FRE_UP_ADDR + EE_INTERVAL)
|
|
#define TC_K_UP_ADDR (FRE_LOW_ADDR + EE_INTERVAL)
|
|
#define TC_K_LOW_ADDR (TC_K_UP_ADDR + EE_INTERVAL)
|
|
#define TC_S_UP_ADDR (TC_K_LOW_ADDR + EE_INTERVAL)
|
|
#define TC_S_LOW_ADDR (TC_S_UP_ADDR + EE_INTERVAL)
|
|
#define TC_N_UP_ADDR (TC_S_LOW_ADDR + EE_INTERVAL)
|
|
#define TC_N_LOW_ADDR (TC_N_UP_ADDR + EE_INTERVAL)
|
|
#define TC_B_UP_ADDR (TC_N_LOW_ADDR + EE_INTERVAL)
|
|
#define TC_B_LOW_ADDR (TC_B_UP_ADDR + EE_INTERVAL)
|
|
#define TC_E_UP_ADDR (TC_B_LOW_ADDR + EE_INTERVAL)
|
|
#define TC_E_LOW_ADDR (TC_E_UP_ADDR + EE_INTERVAL)
|
|
#define TC_J_UP_ADDR (TC_E_LOW_ADDR + EE_INTERVAL)
|
|
#define TC_J_LOW_ADDR (TC_J_UP_ADDR + EE_INTERVAL)
|
|
#define TC_R_UP_ADDR (TC_J_LOW_ADDR + EE_INTERVAL)
|
|
#define TC_R_LOW_ADDR (TC_R_UP_ADDR + EE_INTERVAL)
|
|
#define TC_T_UP_ADDR (TC_R_LOW_ADDR + EE_INTERVAL)
|
|
#define TC_T_LOW_ADDR (TC_T_UP_ADDR + EE_INTERVAL)
|
|
#define RTD_UP_ADDR (TC_T_LOW_ADDR + EE_INTERVAL)
|
|
#define RTD_LOW_ADDR (RTD_UP_ADDR + EE_INTERVAL)
|
|
//}
|
|
|
|
extern uint8_t eeprom_wrt_error_flag;
|
|
extern uint8_t eeprom_rd_error_flag;
|
|
|
|
void eeprom_spi_init(void);
|
|
void eeprom_spi_writebyte(uint8_t wrt_data);
|
|
uint8_t SPI_WriteReadByte(uint8_t data);
|
|
uint8_t eeprom_spi_readbyte(void);
|
|
void eeprom_writedata(int32_t addr_long, uint8_t txd);
|
|
uint8_t eeprom_readdata(int32_t addr_long);
|
|
|
|
//存储参数
|
|
void eeprom_datasave(void);
|
|
|
|
//开机上电后读取参数
|
|
void eeprom_dataread(void);
|
|
|
|
//判断EEPROM内是否已存在数据
|
|
uint8_t eeprom_device_check(void);
|
|
|
|
#endif
|
|
|
|
|