复用这个不讲,一般是可以复用某些功能,如SPI,ADC这些,详细看手册。 讲讲推挽和开漏, 开漏通俗来讲,就是只能拉低电平,不能拉高电平,所以需要外接上拉电阻,由外部提供高电平。好处是高电平可以随意指定,比如你5V单片机一般高电平5V,你控制3V的设备就非常麻烦,那么设置开漏,然后外部上拉到3V,就能非常简单的控制3V设备了。 推挽,简单来讲,就是开漏+ 内部用较小的电阻上拉到VCC,这样在高电平状态,就能输出较大的电流。没有推挽模式的单片机,用开漏模式,和300R上拉电阻,一样可以输出15MA的电流。上拉电阻选值必须参考开漏模式的下拉罐电流承受能力,不然,拉不低电平事小,烧坏单片机事大。 |
#在这 通俗,简单一点来说, IO复用,即一个IO口有两个硬件功能,比如,一个IO口,既可以用作SPI,又可用于UART 而关于开漏和推挽 开漏,相当于一个单刀单置开关 推挽,相当于一个单刀双置开关里快速回复# |
sinside 发表于 2021-8-24 16:48 应该是推挽的电流更大 |
QWE4562012 发表于 2021-8-24 17:54 开漏的话,当单片机驱动能力不足时使用,例如单片机是3.3V但是你控制的元件是需要5V的电平才能动,这时候需要开漏外加5V上拉,或者单片机输出电流最大是1mA但是控制的元件最少要2mA才能驱动,需要用开漏增大电流。至于推挽,正常情况都用推挽。复用的话,IO口不做普通IO口用,使用单片机自带的SPI和USART的时候就得用到复用,你就得配置成对应的复用模式。i2c用复用开漏,spi用复用推挽。 |
QWE4562012 发表于 2021-8-24 17:54 例如 复用开漏: 使用芯片内部自带的I2C; 复用推挽:使用芯片内部自带的SPI; 普通开漏: 有需要较大电流的(相对于IO口驱动电流), 比如LED直接驱动; 推挽则比较常用. 从开漏和推挽的原理图(看我之前发的链接), 就很好理解了, 比如开漏可以理解为一个NPN三极管C极 接出去, E极接地, B极由芯片内部控制, 这样就好理解了. 推挽看图也是类似的道理. |
这四种模式分别在什么场合下使用?比如什么时候用开漏什么时候用推挽呢 |
没有听说复用的部分, 我猜大概是单片机内部有自动外设模块(例如I2C, SPI) 直接进行输出. 比如I2C就需要开漏, SPI用推挽. 然后复用的功能就单片机内部集成了自动的I2C, SPI模块, 所以配置的时候要配置成相应的复用类型. 其本质应该还是开漏和推挽. 至于开漏和推挽除了你说的区别外, 我所知道的是开漏能承受比较大的电流, 其他有知道的人再补充吧. https://zhuanlan.zhihu.com/p/41942876 看看这里图片和表格更加便于理解一些. |