查看: 1392|回复: 3

[求助] rt1052 i2c 读取FM24CL64卡死

[复制链接]

该用户从未签到

9

主题

41

帖子

0

高级会员

Rank: 4

积分
529
最后登录
2024-3-12
发表于 2021-3-5 16:02:14 | 显示全部楼层 |阅读模式
本帖最后由 wx提线木偶 于 2021-3-5 16:03 编辑

SDK: 2.3.1
rt1052 通过i2c 读写测试FM24CL64 时发现,一次读取超过256个字节会卡死,写数据倒不会,查看fm24cl64文档似乎没有读取字节限制。

  1. int fm24cl64_page_read(uint8_t client_addr_7bit,
  2.                                    uint16_t read_addr,
  3.                                    uint8_t* read_buf,
  4.                                    uint16_t num_byte_to_read)
  5. {
  6.     lpi2c_master_transfer_t masterXfer = {0};
  7.     status_t reVal = kStatus_Fail;


  8.     masterXfer.slaveAddress = client_addr_7bit;
  9.     masterXfer.direction = kLPI2C_Read;
  10.     masterXfer.subaddress = read_addr;
  11.     masterXfer.subaddressSize = 2;
  12.     masterXfer.data = read_buf;
  13.     masterXfer.dataSize = num_byte_to_read;
  14.     masterXfer.flags = kLPI2C_TransferDefaultFlag;

  15.     uint8_t try_num = 1;
  16.     while(try_num--)
  17.     {
  18.         reVal = LPI2C_MasterTransferBlocking(FM24CL64_I2C_MASTER, &masterXfer);
  19.         if (reVal != kStatus_Success)
  20.         {
  21.             printf("IIC 读数据失败\r\n");
  22. //            Delay_ms(3);
  23.         }
  24.         else
  25.         {
  26.             printf("IIC 读数据成功\r\n");
  27.             return 0;
  28.         }
  29.     }
  30.     return 1;
  31. }
复制代码
请教大家?





1.png
回复

使用道具 举报

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
19947
最后登录
2024-4-19
发表于 2021-3-8 16:39:25 | 显示全部楼层
我建议抓取波形后对照数据手册比较一下
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2023-7-27 16:05
  • 签到天数: 1 天

    [LV.1]初来乍到

    17

    主题

    81

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1276
    最后登录
    2024-4-17
    发表于 2021-3-11 18:59:12 | 显示全部楼层
    我也遇到过这个问题,这是手册上关于I2C接收数据的描述:Receive 1-256 bytes of data (can also be configured to discard receive data and not store in receive FIFO).
    个人认为一次最多读256字节!
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    41

    帖子

    0

    高级会员

    Rank: 4

    积分
    529
    最后登录
    2024-3-12
     楼主| 发表于 2021-3-13 09:29:13 | 显示全部楼层
    爱喝柠檬水 发表于 2021-3-11 18:59
    我也遇到过这个问题,这是手册上关于I2C接收数据的描述:Receive 1-256 bytes of data (can also be config ...

    哦,看来是1052 i2c的问题,改成多次读了,似乎i2c写超过256字节的数据好像没问题
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 22:45 , Processed in 0.111458 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表