Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
I2C通信がうまくいかないので、ロジック・アナライザをつないで見ていたら、addressの値が、1ビット右シフトされた値が出力されているようです。
なので、下記のソースのように指定する際に1ビット左シフトさせたら、正しい値が出力されるようになりました。
code
I2C i2c(D14, D15); int main() { // while(1) { int value = 4095; //int value = 2047; char buf[3]; buf[0] = 0x40; buf[1] = (value >> 4) & 0xff; buf[2] = ((value & 0x0f) << 4); printf("%02X %02X %02X\r\n",buf[0],buf[1],buf[2]); i2c.frequency(100000); i2c.write(0x60 << 1, buf, 3); printf("b\r\n"); } }