我通过STM32的16位并行接口连接ADS8686S,在软件模式下通过并行接口读取转换结果,读取数据正常,但两次读取结果均为A通道数据
这是我的程序:
#define ADC_BASE_ADDRESS ((uint32_t)0x60000000)
uint16_t volatile *adc_data_addr = (uint16_t volatile *)ADC_BASE_ADDRESS;
int main(void) {
HAL_GPIO_WritePin(SER_PAR_BYTE_GPIO_Port, SER_PAR_BYTE_Pin, GPIO_PIN_RESET);
uint16_t data, data1;
while(1) {
HAL_GPIO_WritePin(CONVST_GPIO_Port, CONVST_Pin, GPIO_PIN_SET); //读取ADC数据
while(HAL_GPIO_ReadPin(ADS_BUSY_GPIO_Port, ADS_BUSY_Pin) == GPIO_PIN_SET);
HAL_GPIO_WritePin(CONVST_GPIO_Port, CONVST_Pin, GPIO_PIN_RESET);
data = *adc_data_addr;
data1 = *adc_data_addr;
}
}
下面是我通过示波器测到的波形,蓝线为RD,黄线为BUSY 可以看到RD已被下拉
