想做个STM32使用PWM的方式驱动ws2812灯带的电路板,但是stm32的io是3.3V的,灯带信号是5V的,按照ws2812手册3.3V不够信号为高的判断。于是直接推挽输出不行,考虑采用开漏输出外接电阻上拉到5V,同时还要选取容忍5V(FT)的引脚。
![](https://i-blog.csdnimg.cn/blog_migrate/dc2d64788d696b56ab90f8eef6e54198.png)
顺便复习下:
推挽输出:可以真正的输出高电平和低电平
开漏输出:只能输出低电平,要想输出高电平,则必须通过上拉电阻实现。
输出电平完全由上拉电阻连接的电源电平决定。 所以在需要进行电平转换的地方,非常适合使用开漏输出。
推挽输出:
![](https://i-blog.csdnimg.cn/blog_migrate/85aa4cc838325e9a5b7a7322609ba793.jpeg)
开漏输出:
![](https://i-blog.csdnimg.cn/blog_migrate/75da914385f393c9fd4530456f1b992f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/704e028e2f8c7ceaec7558af6532b90a.jpeg)