我通过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已被下拉