嵌入式技术william hill官网
直播中

王燕

7年用户 1755经验值
私信 关注
[经验]

使用rtthread studio软件实现eeprom芯片AT24C32的读写操作

建立工程
使用rtthread studio软件,建立工程。我们使用的rtthread版本是4.02,芯片型号是STM32F103FRT6。
1.jpg
1.jpg
验证工程
工程建立之后,软件会自动生成相关代码。此时生成的工程可以直接进行编译和下载,只不过此时的代码值包含最基本的基础文件。通过点击编译按键,可以在下方的输出窗口看到编译结果。
1.jpg
导入组件
基本工程建立之后,我们可以添加AT24XX这个组件,从AT24C02到AT24C256,各个型号的eeprom都是可以支持的。本实验我们采用的eeprom芯片是AT24C32。
除了添加AT24XX这个组件,我们也勾选一下下图所示的“软件模拟I2C”选项。
1.jpg
排除Python错误
大多数用户完成上述工作后,ctr+s保持之后,rtthread studio软件的左侧就会增加一个packages文件夹,且该文件建立有我们刚刚添加是AT24CXX文件夹,这意味着组件成功被添加了。
但是对于部分用户来说(包括笔者自己),packags文件夹里没有AT24CXX这个文件夹,这是因为Python的文件不正确造成的。可以按照如下方法解决:
1、下载Python2.7版本的安装包,在C盘安装。
2、找到新安装的Phthon软件目录 C:Python27DLLs下的-ssl.pyd文件,复制
3、将上一步复制的-ssl.pyd文件粘贴到RTthread目录下的Python2.7文件夹里,替换到原来的文件。D:RT-ThreadStudioplatformenv_releasedenvtoolsPython27DLLs
完成上述操作后,删除AT24CXX的组件包,再重新添加、保存,即可排除这一问题。
1.jpg
配置I2C总线
打开board.h文件,去除BSP_USING_I2C1的注释,同时配置I2C的SCL SDA对于的引脚。作者采用的是SCL PB6 SDA PB7,读者应该根据自己硬件的情况进行此处配置。
1.jpg
配置I2C参数
在AT24CXX.h文件中,我们需要把eeprom的读写延时修改为1ms,eeprom的型号修改为AT24C32。此处的eeprom的型号要与实际的型号一直,否则可能无法正常进行读写操作。
1.jpg
编译验证
完成上述步骤后,我们打开串口终端,会看到串口终端不停打印信息,使得我们无法输入完整的控制命令,我们可在main函数中注释这一打印函数。
1.jpg
注释后,再次编译,下载,运行,然后安装组件包给出的测试命令,完成硬件检测,检查,读取,写入的测试。
具体的指令及其使用方法,读者可以右键组件后选择详细配置,查看开发者给出的说明文档即可。
1.jpg
下面是作者测试正常的截图
1.jpg
调用说明
测试完成后,读者可能需要建立任务调用AT24CXX中的函数进行eeprom芯片的操作,但是函数调用过程中需要注意以下几点:
1、at24cxx_read_one_byte()函数如果要调用,其参数是at24cxx_device_t类型的,是at24cxx_init()函数的返回值。我们也可以理解为读写操作函数的调用的基础是at24cxx的初始化。
2、at24cxx_device_t at24cxx_init(const char *i2c_bus_name, uint8_t AddrInput),这个函数的第一个参数是字符串类型的i2c总线的名字,类型错误的话函数无法正常执行。
2、at24cxx_read_one_byte( at24cxx_init("i2c1",0),0x0010)这是正确的调用的方法。

原作者:「已注销」

更多回帖

发帖
×
20
完善资料,
赚取积分