项目场景:
因为项目的一个功能需求,需要输出一个高电平为5V的PWM。
问题描述:
发现输出的PWM高电平最高只有4V不到的样子,很接近于4V。实测过普通开漏输出,高电平完全可以达到外部上拉的5V。HAL库也试过了,也是完全可以达到5V的,但是标准库的配置一直上不去。
原因分析:
仔细对比发现没啥异常,配的都是对的,但是可以肯定的是,肯定还是配置,因为HAL库可以实现,那就说明一定还是某个地方配的有问题。最后才知道开漏输出脚必须配置为浮空,不配置的话实测默认的是内部上拉。
1.内部下拉:
2.内部上拉:
3.浮空:
解决方案:
一句话:GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;