打印
[研电赛技术支持]

GD32E230C测试之二:I2C及EEPROM

[复制链接]
1098|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GD32E230C开发板上有一个EEPROM,通过I2C连接进行读写操作,相关的文件主要是i2c.c和at24cxx.c及相应的头文件,从相应的Soft_Drive文件夹将这些文件复制过来。i2c.c内主要有gpio_config()和i2c_config()两个函数,在主函数开始时调用这两个函数进行I2C的初始化,I2C就可以使用了。at24cxx.c内主要使用的是i2c_eeprom_init()、eeprom_page_write()和eeprom_buffer_read()三个函数,前者是初始化函数,后者分别是写和读eeprom的函数。
    我的实验是利用eeprom来保存和恢复之前做的简易日期时间数据,写和读的函数如下:
void date_write(void)
{
        data_buff[0] = year >> 8;
        data_buff[1] = year & 0x00FF;
        data_buff[2] = mon;
        data_buff[3] = day;
        data_buff[5] = hour;
        data_buff[6] = minu;
    data_buff[7] = seco;
        eeprom_page_write(data_buff,0,8);//将日期时间写入EEPROM
}

void date_read(void)
{
    eeprom_buffer_read(data_buff,0,8);
        year = data_buff[0] * 100 + data_buff[1];
        if(year < 1000) year = 2019;
        mon = data_buff[2];
        day = data_buff[3];
        hour = data_buff[5];
        minu = data_buff[6];
        seco = data_buff[7];
        
}
复制代码


    读操作用在主函数的主循环之前,读取之前保存的日期时间数据。写操作则用在每小时变动时和调整了日期时间之后。经测试读写操作正常,这样开发板上电后可以从上次保存的日期时间起继续计时,若需调整也用不着年月日时分全部重新调整。
    当然这只是实验,并不实用,真正实用还是需要使用相应的计时模块。下图是显示界面:

使用特权

评论回复
沙发
八层楼| | 2020-12-4 11:48 | 只看该作者
两个都不怎么靠谱的功能部件

使用特权

评论回复
板凳
观海| | 2020-12-4 11:49 | 只看该作者
调试过程还算是顺利吗

使用特权

评论回复
地板
guanjiaer| | 2020-12-4 11:50 | 只看该作者
时钟不准确 会不会导致通讯失败呢

使用特权

评论回复
5
heimaojingzhang| | 2020-12-4 11:52 | 只看该作者
看起来效果还是不错的啊

使用特权

评论回复
6
keaibukelian| | 2020-12-4 11:54 | 只看该作者
非常不错 完全可以在这个的基础上丰富起来

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2038

主题

7366

帖子

10

粉丝