89 I2C可否与MCU I2C通讯读写
时间:10-02
整理:3721RD
点击:
请教
如下代码所示, I2C读取 需要提供寄存器的地址 u8 reg,但 MCU 只有一个寄存器 没有寄存器 地址,那这个数据如何读取?
如下代码所示, I2C读取 需要提供寄存器的地址 u8 reg,但 MCU 只有一个寄存器 没有寄存器 地址,那这个数据如何读取?
- static int stm8_i2c_read(struct stm8_chip *chip, u8 reg, u8 *val)
- {
- int ret;
- s32 read;
- struct i2c_CLIent *client = chip->client;
- reg += I2C_ADDR_OFFSET;
- ret = i2c_smbus_write_byte(client, reg);
- if (ret < 0) {
- mdelay(3);
- ret = i2c_smbus_write_byte(client, reg);
- if (ret < 0) {
- printk(KERN_ERR"%s: failed stm8 2x to write register %x\n",
- __func__, reg);
- return ret;
- }
- }
- read = i2c_smbus_read_byte(client);
- if (read < 0) {
- mdelay(3);
- read = i2c_smbus_read_byte(client);
- if (read < 0) {
- printk(KERN_ERR"%s: failed stm8 read fROM register %x\n",
- __func__, reg);
- }
- return ret;
- }
- *val = (u8)read;
- printk("%s: read from STM8 read=%x\n",__func__, read);
-
- return 0;
- }
应该不能吧,都在Master mode .
不可以的。
学习学习学习
MCU STM8L151 支持 I2C 的4中模式,我们可以使用MCU 的从机读 模式,另外还有 主机读 主机写 从机写 三个模式,89看资料上说 指支持mastar read write,所以 理论上可以使用主机读 与 MCU 通讯,但那个寄存器 不明白了~
MCU STM8L151 支持 I2C 的4中模式,我们可以使用MCU 的从机读 模式,另外还有 主机读 主机写 从机写 三个模式,89看资料上说 指支持mastar read write,所以 理论上可以使用主机读 与 MCU 通讯,但那个寄存器 不明白了~
为什么不可以呢,smbs 与 I2C 协议 基本上是 兼容的
我的建议是如果数据量不大,可以通过中断来读。
这个肯定是 可以的 ,但 I2C读取 需要提供寄存器的地址 u8 reg,但 MCU 只有一个寄存器 没有寄存器 地址,那这个数据如何读取?
寄存器轮询试探
? 不太明白~