这是我第一次尝试在我的设计中使用I2C,所以请容忍我。我使用MCC来设置I2C,我有I2C.c和I2C.h。我在试着读取压力传感器值。该值为15位长。我是需要在阅读前写到奴隶,还是可以直接读取这个值?我已经把我的部分代码放在下面了。你可以看到我只是试着读取一个压力值。有人能为我指出如何实现这一目标的正确方向吗?谢谢你们。
注意:在PIC24FJ128GB204编译器中使用xc16
I2C1_MESSAGE_STATUS status;
uint8_t PressureCommand = 1; //1 indicates a read
uint16_t address = 0xE0;
uint16_t PressureData;
uint8_t length = 2; //2 bytes of data
//Request to read 2 bytes of data
I2C1_MasterRead(&PressureData, length, address, &status);
while(I2C1_MESSAGE_PENDING == status)发布于 2020-02-23 10:24:51
是的,你确实需要“写”给奴隶,然后才能读懂一些东西。通常的程序如下:
在您的例子中,压力数据是一个两个字节的值。但是,在步骤4中,您只需要请求第一个字节,但仍然需要接收两个字节。
编辑:您可能还想看看这个论坛线。
https://stackoverflow.com/questions/60324465
复制相似问题