Clyde011 发表于 2025-5-10 08:05

IO口一边是ADC一边是输出,怎么自动切换不生效?

想采完模拟信号后切成输出拉高,结果电平一直不对,怎么搞?

Clyde011 发表于 2025-5-10 08:05

你采样频率高吗?会不会还没释放IO?

公羊子丹 发表于 2025-5-10 08:06

模拟和数字IO确实不能自动切换。

周半梅 发表于 2025-5-10 08:07

我一般是采完模拟就手动改成GPIO。

帛灿灿 发表于 2025-5-10 08:07

GPIO模式你设成了输出推挽吗?

童雨竹 发表于 2025-5-10 08:08

C0系列IO复用比较有限,注意Pin配置。

万图 发表于 2025-5-10 08:09

用CubeMX检查下Pin配置。

Wordsworth 发表于 2025-5-10 08:10

我这边是用两个引脚分别搞的。

Bblythe 发表于 2025-5-10 08:10

IO方向切换需要一点延时。

Pulitzer 发表于 2025-5-10 08:11

看看是不是ADC占用了复用功能?

Uriah 发表于 2025-5-10 08:12

尝试手动写寄存器控制模式切换。

qintian0303 发表于 2025-5-10 10:44

采集完之后就要对引脚进行重新的初始化应该就可以吧

失物招領 发表于 2025-6-14 12:22

在STM32C0中,若IO口同时配置为ADC输入和普通输出(如GPIO输出),需通过动态切换引脚模式来实现功能切换。若自动切换不生效,可能是配置顺序、时序控制或硬件状态未正确处理导致

温室雏菊 发表于 2025-6-14 13:00

STM32的引脚模式切换需在特定条件下完成。例如,ADC采样期间引脚必须保持模拟输入模式,若在采样过程中切换为输出模式,会导致数据错误或硬件冲突

捧一束彼岸花 发表于 2025-6-14 13:30

若未正确同步切换时序(如未等待ADC转换完成或未禁用输出驱动),可能引发冲突

白马过平川 发表于 2025-6-14 14:00

在切换为ADC模式前,需确保GPIO的输出驱动已禁用(如通过GPIO_InitStruct.Mode = GPIO_MODE_ANALOG),否则残留的输出信号可能干扰ADC采样

故意相遇 发表于 2025-6-14 15:00

若使用中断或DMA触发ADC采样,需确保在切换模式时禁用相关中断或DMA请求,避免数据冲突

将爱藏于深海 发表于 2025-6-14 17:00

若引脚复用为其他外设(如定时器PWM输出),需在切换为ADC模式前禁用这些外设,否则可能引发冲突

西洲 发表于 2025-6-14 19:00

通过标志位或状态机控制切换逻辑,确保在ADC采样完成后再切换模式

风凉 发表于 2025-6-14 22:00

确保外部电路(如传感器、负载)不会在切换模式时引入干扰。例如,ADC输入端需避免高阻抗或浮空状态
页: [1]
查看完整版本: IO口一边是ADC一边是输出,怎么自动切换不生效?