当前位置: 首页 > 文档资料 > YoC 编程基础 >

EEPROM 数据读写例程开发指南

优质
小牛编辑
116浏览
2023-12-01

EEPROM (Electrically Erasable Programmable read only memory)是一种掉电后数据不丢失的存储器,常用来存储一些配置信息,以便系统重新上电的时候加载。EEPOM 芯片最常用的通讯方式为IIC协议。本示例封装了IIC总线的操作,可以使应用程序方便地读写EEPROM设备。

该例程适用于CB6502M开发板。

3.1. 应用初始化

应用入口函数app_main(),主要实现如下功能:

  • 板级初始化
  • EEPROM读写

代码分析:

int app_main(int argc, char *argv[])
{
    /* 板级初始化,各业务模块初始化 */
    board_yoc_init();

    ......

    /* record data to eeprom and read it */
    eeprom_check_action();

    return;
}

3.2. EEPROM操作

EEPROM API封装了IIC总线的操作,APP可通过简单的操作读取EEPROM的数据。

处理流程图如下图所示: LoRaWAN流程图

代码分析:

static void eeprom_check_action(void)
{
    ......
    ret = eeprom_init();
    ......

    ret = eeprom_write(DATAADDR_IN_EEPROM, (const uint8_t *)data_p, sizeof(report_data));
    ......

    data_get = aos_malloc(sizeof(report_data));
    ......

    ret = eeprom_read(DATAADDR_IN_EEPROM, data_get, sizeof(report_data));
    aos_free(data_get);
    ......            

    eeprom_uninit();
}

以CB6502M开发板为例,示例程序的运行步骤为:

4.1. 接线

  • CB6502M开发板J34引脚图 RS485子板连接

  • 以EEPROM 64为例的接线 EEPROM子板连接

EEPROM 管脚开发板J34
VCCDVDD3V3
GNDGND
SCLSCL0
SDASDA0

4.2. 编译下载

  • 连接打印串口和调试口

  • 打印串口的串口调试工具配置为:

    波特率: 115200, 数据位: 8, 校验位: None, 停止位: 1, 流控: None

  • 使用集成开发环境CDK编译工程文件,然后下载至CB6502M开发板

  • 按RESET按键,复位开发板,串口将打印如下信息

[     0.221921][I][init    ]OS version: 7.0.2
[     0.254091][D][eeprom_demo]Enter APP mode
  • EEPROM写数据打印信息
[     0.720935][D][eeprom_demo]
0x0000: 0x00 0x00 0x00 0x07 0x10 0x11 0x12 0x13
0x0008: 0x14 0x15 0x16 0x00 0x00 0x00 0x00 0x00
0x0010: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0018: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0020: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0028: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0030: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0038: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0040: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0048: 0x00 0x00
  • EEPROM读数据打印信息
[     0.764524][D][eeprom_demo]Read:
[     0.768157][D][eeprom_demo]
0x0000: 0x00 0x00 0x00 0x07 0x10 0x11 0x12 0x13
0x0008: 0x14 0x15 0x16 0x00 0x00 0x00 0x00 0x00
0x0010: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0018: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0020: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0028: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0030: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0038: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0040: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0048: 0x00 0x00