这是写AD7175寄存器的代码
/**************************************************************************//**
* @brief Writes the value of the specified register
*
* @param reg - Register structure holding info about the register to be written
*
* @return Returns 0 for success or negative error code.
******************************************************************************/
int32_t AD7175_WriteRegister(st_reg reg)
{
int32_t ret = 0;
int32_t regValue = 0;
uint8_t wrBuf[8] = {0, 0, 0, 0, 0, 0, 0, 0};
uint8_t i = 0;
uint8_t crc = 0;
/* Build the Command word */
wrBuf[0] = COMM_REG_WEN | COMM_REG_WR | reg.addr;
/* Fill the write buffer */
regValue = reg.value;
for(i = 0; i < reg.size; i++)
{
wrBuf[reg.size - i] = regValue & 0xFF;
regValue >>= 8;
}
/* Compute the CRC */
if(AD7175_st.useCRC)
{
crc = AD7175_ComputeCRC(wrBuf, reg.size+1);
wrBuf[reg.size + 1] = ~crc;
}
/* Write data to the device */
ret = SPI_Write(AD7175_SLAVE_ID,
wrBuf,
AD7175_st.useCRC ? reg.size + 2 : reg.size + 1);
//ret = SPI_RW(AD7175_SLAVE_ID,
// wrBuf,
// AD7175_st.useCRC ? reg.size + 2 : reg.size + 1);
return ret;
}
这是写AD7175寄存器的代码
/**************************************************************************//**
* @brief Writes the value of the specified register
*
* @param reg - Register structure holding info about the register to be written
*
* @return Returns 0 for success or negative error code.
******************************************************************************/
int32_t AD7175_WriteRegister(st_reg reg)
{
int32_t ret = 0;
int32_t regValue = 0;
uint8_t wrBuf[8] = {0, 0, 0, 0, 0, 0, 0, 0};
uint8_t i = 0;
uint8_t crc = 0;
/* Build the Command word */
wrBuf[0] = COMM_REG_WEN | COMM_REG_WR | reg.addr;
/* Fill the write buffer */
regValue = reg.value;
for(i = 0; i < reg.size; i++)
{
wrBuf[reg.size - i] = regValue & 0xFF;
regValue >>= 8;
}
/* Compute the CRC */
if(AD7175_st.useCRC)
{
crc = AD7175_ComputeCRC(wrBuf, reg.size+1);
wrBuf[reg.size + 1] = ~crc;
}
/* Write data to the device */
ret = SPI_Write(AD7175_SLAVE_ID,
wrBuf,
AD7175_st.useCRC ? reg.size + 2 : reg.size + 1);
//ret = SPI_RW(AD7175_SLAVE_ID,
// wrBuf,
// AD7175_st.useCRC ? reg.size + 2 : reg.size + 1);
return ret;
}
举报