# stm的io设置为双向问题,将io端口模式配置为 open-drain mode
> 在io端口配置为输出模式时,输入通道上的施密特触发器一直是打开的,所以读取IDR是能检测到端口电平的
> 排除 push-pull mode 模式的依据是,推挽输出是强输出电流模式,在此模式下的输出通道上的推挽结构MOS管,属于强上拉和强下拉的,这会影响读取IDR时的值,强上拉意味着会将来自外部的低电平输入强制置高,强下拉意味着会将来自外部的高电平输入强制置低
> 在 open-drain mode 模式下,要读取来自外部的输入信号前,须将输出端口设置为开漏结构,且输出高电平信号(即NMOS不导通),该结构下io端口方能准确反映来自外部的输入信号
> 在复用模式下,暂未尝试,相信会有奇妙的发现