#ifndef JW3425IIC_H #define JW3425IIC_H #include "base/define.h" #include "gpio_cfg.h" #define SDA_IN() IIC_SDA_DIR(1) //PB11输入模式 #define SDA_OUT() IIC_SDA_DIR(0)//PB11输出模式 #define IIC_SDA(x) PBout(I2IC_SDA_Pin_Nu)=(x) #define IIC_SCL(x) PBout(I2IC_SCL_Pin_Nu)=(x) #define READ_SDA (PBin(I2IC_SDA_Pin_Nu)&0x01) #define IIC_PLUS_DELAY 5 #define I2C_OPERATION_OUTTIME 100000 void I2C_init(void); void I2C_Definit(void); void IIC_SDA_DIR(uint8_t dir); int32_t I2C_master_write(uint16_t address, uint8_t *src, uint32_t size, uint32_t *nwriten, uint8_t bi_dir); /* @param bi_dir: option using in transceive */ int32_t I2C_master_read(uint16_t address, uint8_t *dst, uint32_t size, uint32_t *nread, uint8_t bi_dir); /* @param bi_dir: option using in transceive */ int32_t I2C_master_write_read(uint16_t address, uint8_t*cmd, uint8_t cmd_size,uint8_t *dst, uint32_t read_size, uint32_t *nread); /* @brief Vref电压校准 @param0 0不更新,1更新 @param1 校准值 */ void MC_VrefTrim(void); /* @brief Iref电压校准 @param0 Iref1 0不更新,1更新 @param1 Iref2 0不更新,1更新 @param2 Iref1 校准值 @param3 Iref2 校准值 */ void MC_IrefTrim(void); /* @brief Iref1电压校准 @param0 0不更新,1更新 @param1 校准值 */ void MC_RC4MTrim(void); /* @brief RC128K校准 @param0 0不更新,1更新 @param1 校准值 */ void MC_RC128KTrim(void); /* @brief 设置MTP电压 @param0 低压 @param1 高压 */ void MC_SetMTPVol(void); /* @brief 设置MTP电压 @param0 MTP地址 @param1 擦除模式 */ void MC_EraseMTP(void); /* @brief MTP写入数据 @param0..N 编程数据 */ void MC_IICWriteMTP(void); /* @brief MTP读数据 @param0 读取数据字节长度 */ void MC_IICReadMTP(void); /* @brief MTP状态查询 */ void MC_IICCheckMTPState(void); /* @brief MTP下载程序 @param 更新地址 @param 烧录长度 */ void MC_IICUpdateMTP(void); /* @brief MTP使能或失能 @param0 0失/1使能 */ void MC_IICEnMTP(void); #endif