鴻蒙硬體HI3861-I2C-PCF8591
如果有什麼問題可以來B站問我
https://space.bilibili.com/309103931
1.初始化
需要用到的頭檔案
#include <stdio.h>
#include "cmsis_os2.h"
#include "wifiiot_i2c.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
#include <hi_stdlib.h>
GpioInit();
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_13, WIFI_IOT_IO_FUNC_GPIO_13_I2C0_SDA);
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_14, WIFI_IOT_IO_FUNC_GPIO_14_I2C0_SCL);
I2cInit(WIFI_IOT_I2C_IDX_0, OLED_I2C_BAUDRATE);
2.8591函數
uint32_t PCF8591Write(uint8_t write_data[]){
WifiIotI2cIdx id = PCF8591_I2C_IDX;
WifiIotI2cData i2cData = {0};
i2cData.sendBuf = write_data;
i2cData.sendLen = 2;
uint32_t result = I2cWrite(id, PCF8591_I2C_ADDRESS, &i2cData);
return result;
}
uint32_t PCF8591Read(uint8_t read_data_address){
uint8_t writeBuf[1] = {0};
WifiIotI2cIdx id = PCF8591_I2C_IDX;
WifiIotI2cData i2cWData = {0};
writeBuf[0] = read_data_address;
i2cWData.sendBuf = writeBuf;
i2cWData.sendLen = 1;
I2cWrite(id, PCF8591_I2C_ADDRESS, &i2cWData);
uint8_t readBuf[5] = {0};
WifiIotI2cData i2cRData = {0};
i2cRData.receiveBuf = readBuf;
i2cRData.receiveLen = 1;
uint32_t Rresult = I2cRead(id, PCF8591_I2C_ADDRESS,&i2cRData);
return Rresult;
}
3.測試
uint8_t d[3] = {0x43,0x00};
PCF8591Write(d);
while(1){
PCF8591Read(0x43);
osDelay(100);
}