你遇到的问题可能是由于STM32F4的GPIO上拉电阻设置问题导致的。在 STM32 的标准库中,上拉输出被设置为 50mA ,这是通过 GPIO 配置寄存器的速率(Speed)和输出类型(Output Type)字段来控制的。1. 首先检查你的代码是否正确地设置了 GPIO 的模式、极性以及速度。这通常可以在 `RCC_AHB1PeriphClockCmd()` 或类似的函数中找到。你需要确保已经将 GPIO 设置为了正确的上拉输入或开漏输出等合适的模式。对于开漏输出,你可能需要外部上拉才能正常工作。2. 你提到使用 HAL 库可以正常输出 1V,那么你可以检查一下是不是使用了不同的驱动电流设置的选项。例如,如果你在使用 stm32f4xx_hal 库的话,可能会看到类似这样的代码:`GPIO_InitTypeDef GPIO_InitStruct = {0};` 和 `GPIO_InitStruct.Pin = GPIO_PIN_x; // 把 x 替换成你要使用的引脚编号` 。然后可以通过修改 `GPIO_InitStruct.Mode` 、 `GPIO_InitStruct.Pull` 等参数进行重新初始化 GPIO 来尝试解决问题。3. 如果上述方法都无法解决你的问题,可能需要进一步查看硬件设计或者芯片的具体规格书了。可能存在一些与特定型号 STM32 相关的特殊情况或者是 bug。具体的情况可能会有所不同,但最通用的解决方案通常是仔细阅读相关文档并确定你已经适当地设定了所有需要的参数。