工具/软件:
您好:
我尝试读取 ADS7828 上的电压值、范围为 0V 至 3V。 但电压将达到 0。 下面是我的代码
uint8_t ADS7828_GetControlByte(uint8_t 通道)
{
如果(通道> 7)通道= 7;
uint8_t control_byte = 0x80 |(通道<< 4);// sd=1、ch=通道、PD = 00(转换后断电)
返回 CONTROL_BYTE;
}
//从指定通道读取 ADC 值
HAL_StatusTypeDef ADS7828_ReadChannel (uint8_t 通道、uint16_t * ADC_value)
{
uint8_t cmd = ADS7828_CMD(通道,0、1);
uint8_t data[2]={0};
//步骤 1:发送命令字节
if (HAL_I2C_IF Master_Transmit (&hi2c1、ADS7828_address、&cmd、1、HAL_MAX_DELAY)!= HAL_OK)
{
返回 HAL_error;
}
//步骤 2:从 ADC 读取 2 个字节(MSB 在前)
if (HAL_I2C_IF Master_Receive (&hi2c1、ADS7828_ADDRESS、DATA、2、HAL_MAX_DELAY)!= HAL_OK)
{
返回 HAL_error;
}
//将这两个字节组合成一个 12 位结果
* ADC_VALUE =((DATA[0]与 0x0F)<< 8)| DATA[1];// 12 位右对齐
i2c 已成功写入。 但 ADS7828 上的值为 0。
帮助我解决此问题。 如果您需要更多信息、请告诉我。
此致、
Yash Gupta
返回 HAL_OK;
}
