8位地址的I2C通讯,一次只能传输255个字节?

TsingSoftware2014 2020-09-03 03:04:14
8位地址的I2C通讯,一次只能传输255个字节?比如我想读一下0x03的寄存器,我可以一次获取300个byte吗?
...全文
16888 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
硬件拾遗 2020-09-04
  • 打赏
  • 举报
回复
I2C支持连续读写,主要看设备是否支持,一般来说8位地址只能访问256个地址空间,超过的话就算可以访问到,也没法逐个单独访问,意义不大,而且这8位地址并不是物理连线,完全可以用多个字节表示地址,所以还是要看设备是怎么实现的,具体问题具体分析。
fly 100% 2020-09-04
  • 打赏
  • 举报
回复
i2c 完整协议包括page read ,只要发送一次地址 连续发送读就能都会来数据。
wengt1 2020-09-04
  • 打赏
  • 举报
回复
跟你地址没关系,又不是寻址地址,要看能否支持multi _read,规格书一般会有读写的时序,建议看一下规格书,如果是可以连续读的,看是硬件I2C还是软件,如果是模拟的I2C,一般发送完一个字节都会有ack,收到继续读就行了。
yoveldf 2020-09-03
  • 打赏
  • 举报
回复
引用 2 楼 TsingSoftware2014 的回复:
[quote=引用 1 楼 yoveldf 的回复:][quote=引用 楼主 TsingSoftware2014 的回复:]8位地址的I2C通讯,一次只能传输255个字节?比如我想读一下0x03的寄存器,我可以一次获取300个byte吗?
对于iic读,对于8位地址寄存器,你要看这个寄存器提供的数位位宽是多少,有一个byte或者多个byte,但涉及到最底端,每一次读都是一个byte的,你可以连续读这个寄存器[/quote]谢谢您的回复,我是说我就直接read(0x03,300)这样的读取,可以吗?[/quote] 看你read函数内部怎么实现的啊,函数支持就可以啊
TsingSoftware2014 2020-09-03
  • 打赏
  • 举报
回复
引用 1 楼 yoveldf 的回复:
[quote=引用 楼主 TsingSoftware2014 的回复:]8位地址的I2C通讯,一次只能传输255个字节?比如我想读一下0x03的寄存器,我可以一次获取300个byte吗?

对于iic读,对于8位地址寄存器,你要看这个寄存器提供的数位位宽是多少,有一个byte或者多个byte,但涉及到最底端,每一次读都是一个byte的,你可以连续读这个寄存器[/quote]谢谢您的回复,我是说我就直接read(0x03,300)这样的读取,可以吗?
yoveldf 2020-09-03
  • 打赏
  • 举报
回复
引用 楼主 TsingSoftware2014 的回复:
8位地址的I2C通讯,一次只能传输255个字节?比如我想读一下0x03的寄存器,我可以一次获取300个byte吗?
对于iic读,对于8位地址寄存器,你要看这个寄存器提供的数位位宽是多少,有一个byte或者多个byte,但涉及到最底端,每一次读都是一个byte的,你可以连续读这个寄存器

21,620

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧