rtthread iic读取M24C64的测试程序

16 篇文章 3 订阅

先加软件包

下面两个参数根据实际情况修改

修改board.h里面的引脚定义

添加驱动

/********EEPROM掉电保存*********/
uint8_t IIC2_WriteBuffer_Test[16], IIC2_ReadBuffer_Test[16];
void iic_write_test(void)//iic写
{
    uint16_t i;

    for(i=0; i<16; i++)
        IIC2_WriteBuffer_Test[i] = rand();

    if(at24cxx_write(i2c2_bus, 0, IIC2_WriteBuffer_Test, 16) == RT_EOK)
        rt_kprintf("\r\n EEPROM 24C64 Write Test OK \r\n");
    else
        rt_kprintf("\r\n EEPROM 24C64 Write Test False \r\n");
}

void iic_read_test(void)//iic读
{
    uint16_t i;

    at24cxx_read(i2c2_bus, 0, IIC2_ReadBuffer_Test, 16);

    for(i=0; i<16; i++)
        rt_kprintf("0x%02X  ",IIC2_ReadBuffer_Test[i]);


    if(memcmp(IIC2_WriteBuffer_Test,IIC2_ReadBuffer_Test,16) == 0 ) /* check date */
        rt_kprintf("\r\n EEPROM 24C64 Read Test OK\r\n");
    else
        rt_kprintf("\r\n EEPROM 24C64 Read Test False\r\n");
}

void iic_rw_test(void)
{
    i2c2_bus = at24cxx_init(M24C64_I2C_BUS_NAME,0x50);//必须为0x50

    if (!i2c2_bus)
    {
        rt_kprintf("at24cxx_init %s failed!\n", M24C64_I2C_BUS_NAME);
        return;
    }
    iic_write_test();
    rt_thread_mdelay(200);
    iic_read_test();
}
MSH_CMD_EXPORT(iic_rw_test, test iic M24C64);

void iic_read(int argc, char**argv)//iic读
{
    if(argc != 2)
    {
       rt_kprintf("Only one parameter bytes num can be entered\r\n");
       return;
    }
    else
    {
        uint8_t byte_num = atoi(argv[1]);
        uint8_t testbuffer[byte_num];
        at24cxx_read(i2c2_bus, 0, testbuffer, byte_num);
        rt_kprintf("read EEPROM 24C64:\n");
        for(uint8_t i=0; i<byte_num; i++)
            rt_kprintf("%c",testbuffer[i]);
        rt_kprintf(" read complete\n");
    }
}
MSH_CMD_EXPORT(iic_read, iic M24C64 read: <bytes>);

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大饼酱人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值