我正在编写代码,我的板子是 Nucleo-144
STM32F746,起初我试图用 DMA 读取 12 个模拟信号,从 0 到 3V,读取结果很好,除了一些有噪声和奇怪偏移的通道,我将我的信号读数减少到只有三个信号,前三个通道从 CH0 到 CH2,分别是引脚 PA0 PA1 和 PA2。在这里,我注意到 PA1 上的正弦噪声信号的 RMS 电压值约为 1.4V(在示波器上测量),在通道 2 上,PA2 我注意到空中的引脚始终处于高电平,信号为 3.3V。我开始进行一些测试,将引脚配置更改为仅带有下拉(通过软件)电阻的数字输入,它似乎在 PA1 和 PA2 引脚上没有做任何事情,将此配置作为输入,所有其他引脚保持打开状态一个 0V 恒定信号,但这两个似乎没有改变。
我所有的配置都是在 STM32CUBEIDE 上进行的,这是生成的 PIN 初始化代码,我没有在主服务器上运行任何东西。只是限制在这三个输入上设置下拉电阻,并在示波器上检查引脚信号,这是我能做到的最简单的方法,但无法弄清楚为什么它们会这样。
静态无效 MX_GPIO_Init(无效)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}