这是我们的 ADC 的原理图配置。 信号 EXT_ADC_MOSI、EXT_ADC_MISO、EXT_ADC_SCK 和 EXT_ADC_NSS 连接到 STM32F446ZE 微控制器。
当我们尝试将 CH0设置为读取通道时、我们在读取时没有遇到任何问题。
但是、如果我们选择另一个通道作为读取通道、ADC 似乎会切换通道、但我们读取的值错误。
例如、如果我们在 CH1上放置5V 直流信号、并尝试读取、则转换值为79。
这些是 SPI 配置参数:
例如、为了切换到 CH1、 我们发送2个8位无符号整数、在第二个整数中、我们放置了值:0b00001000 (CH1)。
然后,我们将 NSS 切换到低状态,并调用此函数:
HAL_SPI_TransmitReceive (&hspi1、TX、Rx、2、1000);
其中 TX 和 Rx 是无符号 int 2元素数组。
最后、我们将 NSS 设置为高状态。
为了获得转换后的样本、我们使用以下传递函数:
值= rxtmp[0]|((uint16_t) rxtmp[1]<< 8);
电压=(浮点)值*5/4096;
此致、
Giuseppe POTA