该存储器主要应用于需要多次存储的场景,其他存储器有效次是10万次,而该存储器的存储次数是10的10次方次,可以有效的解决频繁存储的问题。
以下是,c文件:
#include "I2C_FRAM.h"
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
u8 FRAM_ADDRESS;
/* Private function prototypes -----------------------------------------------*/
#define I2C_Speed 100000
#define I2C1_SLAVE_ADDRESS7 0xA0
#define I2C_PageSize 256
void FramSdaInputInit(void);
void FramSdaOutputInit(void);
u8 I2C_FRAM_BufferWrite(u8* pBuffer, u16 WriteAddr, u16 NumByteToWrite);
u8 I2C_FRAM_BufferRead(u8* pBuffer, u16 ReadAddr, u16 NumByteToRead);
/* Private functions ---------------------------------------------------------*/
/**/
/**
* @brief 初始化FRAM端口
* @param None
* @retval : None
*/
void Fram_GpioInitial(void)
{
__HAL_RCC_GPIOC_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
//设置SDA为输出
FramSdaOutputInit();
//写保护禁止
FRAM_WP_Disable();
}
/**
* @brief 初始化FRAM_SDA端口为输入
* @param None
* @retval : None
*/
void FramSdaInputInit(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0}

最低0.47元/天 解锁文章
1457

被折叠的 条评论
为什么被折叠?



