示例#1
0
/*内部库调用*/
int IIC_Write(uint8_t addr, uint8_t reg, uint8_t len, uint8_t* data)
{
	if(I2C_BurstWrite(HW_I2C0,addr,reg,1,data,len))
		return FALSE;
	else
		return TRUE;
}
示例#2
0
int eep_write_page(uint32_t addr, uint8_t *buf, uint32_t len)
{
    int ret;
    uint8_t chip_addr;
    
    chip_addr = (addr/256) + eep_dev.addr;
    ret = I2C_BurstWrite(eep_dev.bus_instance, chip_addr, addr%256, 1, buf, len);
    while(I2C_Probe(eep_dev.bus_instance, eep_dev.addr));
    return ret;
}
示例#3
0
文件: i2c.c 项目: rainfd/CH-K-Lib
/**
 * @brief  write single register value
 * \param[in]  instance    instance of i2c module
 * \param[in]  chipAddr    i2c slave addr
 * \param[in]  addr        i2c slave register offset
 * \param[in]  data        data to write 
 * @note   usually used on i2c sensor devices
 * \retval 0 success
 * \retval 1 failure
 */
int I2C_WriteSingleRegister(uint32_t instance, uint8_t chipAddr, uint8_t addr, uint8_t data)
{
    return I2C_BurstWrite(instance, chipAddr, addr, 1, &data, 1);
}
示例#4
0
/**
 * @brief  写一个从机寄存器(寄存器地址在从机中必须为8位地址 如MMA845x等传感器设备)
 * @code
 *     //使用i2c的1模块将data中的1字节数据写入地址为0x55的从机中地址为0x01的设备
 *    I2C_WriteSingleRegister(HW_I2C1, 0x55, 0x01, data);
 * @endcode
 * @param  instance :I2C模块号 
 *         @arg HW_I2C0  :I2C0模块
 *         @arg HW_I2C1  :I2C1模块
 *         @arg HW_I2C2  :I2C2模块
 * @param  deviceAddress :从机设备地址0~127
 * @param  registerAddress: 寄存器在从机中的地址
 * @param  Data: 需要写入的数据
 * @retval 0:成功  1:地址发送失败 2:数据发送失败
 */
uint8_t I2C_WriteSingleRegister(uint32_t instance, uint8_t deviceAddress, uint8_t registerAddress, uint8_t data)
{
    return I2C_BurstWrite(instance ,deviceAddress, registerAddress, 1, &data, 1);
}
示例#5
0
int MB85RC64_WriteByte(uint16_t pos, uint8_t data)
{
    pos = BSWAP_16(pos);
    return I2C_BurstWrite(gInstance, MB85RC64_ADDR, pos, 2, &data, 1); 
}