【RT-Thread Master】at24cxx软件包使用笔记

本文详细介绍了如何在RT-Thread V4.1.0版本中使用AT24C16 EEPROM,包括添加软件包、配置IIC、修改驱动以适配不同型号的EEPROM、编写命令行工具进行读写操作,并解决了超过256字节地址的读写问题。通过对驱动代码的改造,实现了自动计算页地址的功能,确保能正确访问所有内存地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件介绍

  • RT-Thread版本:V4.1.0
  • 软件包名称:at24cxx
  • MCU型号:AT32F407VET7
  • EEPROM型号:AT24C16

使用说明

1、使用menuconfig将软件包添加进入工程,路径如下所示。
在这里插入图片描述
2、把IIC总线打开,这里使用软件IIC,如果已经打开了就不用再次打开,IIC所用的引脚暂时先不管。
在这里插入图片描述
3、然后编译工程。
在这里插入图片描述
4、编译完成以后,打开工程,可以发现IIC驱动已经被添加进来了,at24cxx软件包也添加进来了。
在这里插入图片描述
5、然后我们进入at24cxx.h文件,修改我们EEPROM型号。我这里是AT24C6。
在这里插入图片描述
6、然后我们进入rtconfig.h文件里面,修改我们的IIC引脚。默认是22和23,这里我直接使用GET_PIN来获取引脚,但是这种方式的缺点就是每次menuconfig以后都要去修改一次,不过我也不是经常去menuconfig,测试时就暂时先这么改吧。

7、然后我们将工程编译一下,没有错误,下载到板子上。在shell中输入at24cxx,然后回车,就会弹出几个命令。分别是probe,read,write。
在这里插入图片描述
8、要想使用read/write命令,要先使用probe命令对AT24CXX进行初始化。于是输入下面的命令进行初始化。
at24cxx probe i2c1
9、然后就可以使用at24cxx read 和at24cxx write命令进行读写了。当然这个命令做得太简单了,只是读写都是从0地址开始,读写指定的位置的。而我想读写任意位置的数据,因此需要对命令进行改造一下。经过修改后的函数如下,这样我就可以读写任意位置的数据了。我们来演示一下。

static uint8_t opt_buffer[2048];

void at24cxx(int argc, char *argv[])
{
   
    static at24cxx_device_t dev = RT_NULL;
	uint16_t opt_addr, opt_len;
	
    if (argc > 1)
    {
   
        if (!strcmp(argv[1], "probe"))
        {
   
            if (argc > 2)
            {
   
                /* initialize the sensor when first probe */
                if (!dev || strcmp(dev->i2c->parent.parent.name, argv[2]))
                {
   
                    /* deinit the old device */
                    if (dev)
                    {
   
                        at24cxx_deinit(dev);
                    }
                    dev = at24cxx_init(argv[2], atoi(argv[3]));
                }
            }
            else
            {
   
                rt_kprintf("at24cxx probe <dev_name> <AddrInput> - probe sensor by given name\n");
            
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值