STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口

一、如何判断STM32的IO是否兼容5V

       STM32的IO,绝大部分都兼容5V,至于哪些兼容5V,需要看STM32芯片的数据手册里的引脚描述表,凡是带FT标志的IO口,都是兼容5V的。

STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第1张图片

对于正点原子的战舰开发板为例,看IO是否兼容5V,有一个小技巧:
  • 从原理图上看,凡是带有ADC字样的IO,都不兼容5V,反之都兼容5V。如下图所示,其他部分也是
    STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第2张图片

二、 如何选择外设的IO口

  • 对于正点原子的开发板原理图,都是提供了详细的IO功能标注,即每个IO的复用功能,都体现在了原理图上(重映射除外
  • 重映射部分只对F103是有效的,F1才能使用重映射来复用引脚的功能。如下图所示,STM32F103XX的数据手册里,以PE7引脚为例,这个引脚的默认功能是FSMC_D4,TIM1_ETR的功能原本在PE7这个引脚上是不含有的,但是该引脚可以被重映射后具有TIM1_ETR的功能。
    STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第3张图片
    具体是通过参考手册的8.4节里的AFIO寄存器来控制IO的重映射:
    STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第4张图片
    对于F4系列以上的芯片就不含有重映射,F4以上使用的是复用功能选择器AF来选择引脚的复用功能。

关于选择不同功能的IO,有需要注意的地方,以选择能作为ADC的引脚为例:

  • 和上图所示一样,只要原理图里标注了含ADC功能的引脚都可以被复用为ADC功能,如果需要其它功能一样查找即可。
  • 如下图所示引脚功能标注的 “ADC123_IN0” ,ADC表示AD功能,“123” 表示芯片内部有3个ADC通道1、2、3。且三个通道都映射到PA0引脚上
    在这里插入图片描述
    对于ADC12_IN8就表示,只有1和2通道能作为AD采集,映射到PB0引脚,
    在这里插入图片描述
  • 但是,即使原理图上标注了该引脚可以被复用为哪些功能,但是由于功能的具体特性要求决定了改引脚能在已经连接了外设的情况下是否还能连到你需要使用的功能。以ADC功能为例,具体根据该引脚所连接的外设的特性来决定是否能作为ADC功能,举例如下:如果引脚作为AD输入,要求该引脚做到完全浮空输入,所以一般要求这个IO口完全独立,不接任何外设或者上下拉。
    STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第5张图片
    如上图所示,PA0的引脚连接到了WK_UP外设,此时我们需要看WK_UP外设连接的是什么,看能否实现完全浮空的输入状态。跳转到WK_UP可以看到的是WK_UP只是接了一个按键,当按键没有被按下的时候,该引脚属于完全浮空状态,此时就可以被用来做AD输入引脚。
    STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第6张图片
    同样的,可以看到上图的PA2也能被复用为ADC功能,但是它被连接到了USART2_TX外设,具体得调到USART2_TX,看它能否处于完全浮空状态。如下图所示,对于正点原子战舰开发板里的原理图,USART2_TX通过跳线帽选择连接到串口还是RS485接口(即P7的2脚不和1或者5连接),因此该引脚在未连接跳线帽的时候属于完全浮空状态,此时该引脚可以被用来作为AD采集。
    STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第7张图片
    最后以PA5引脚为例,它连接到了VS_SCK引脚上去,我们需要去看看VS_SCK引脚接到了什么地方来决定该引脚是否能作为AD采集的输入引脚。
    STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第8张图片
    跳转到VS_SCK的连接处,如下图所示,可以看到VS_SCK连接到的是某个芯片的IO口上,所以这个IO口是没有办法达到完全浮空的状态,此时它是不能被拿来作为AD采集的引脚。同理VS_MISO和VS_MOSI引脚也不能作为AD采集引脚。
    STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第9张图片
    对于选择SPI功能的引脚的话,以下图所示,首先看到这三个引脚是具有SPI功能的,虽然这三个引脚已经连接到了VS_SCK、VS_MISO、VS_MOSI和SPI的三个功能共用了,但是需要注意的是SPI可以分时复用,连接的外设一般都是具有片选功能的,对于战舰开发板上VS_SCK连接的外设也是具有片选的,此时若要使用SPI的功能,只需要使能SPI连接设备的片选,禁止VS_SCK、VS_MISO、VS_MOSI连接外设芯片的使能引脚,就可以使用PA5-PA7的SPI功能了。
    STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口_第10张图片

总结:对于选择AD采集引脚而言,首先看 ①该引脚的数据手册里是否能写能被复用为特定的某些功能,正点原子的开发板原理图里全部都列出来了,其他的就需要看数据手册的Pin描述了。其它特殊功能如SPI以同样的方式来选择。②看该引脚所连接的外设是否能够达到完全浮空的状态。

三、注意事项

  • IO口一定不要接超过5V的电压
  • 不要用IO口直接驱动感性负载(电机/电磁阀/继电器等),一般都接了缓冲器。感性负载在断开的时候会产生一个很高的反电动势,直接会把IO口烧坏。
  • 外接其他外设时,先做好IO选型,选择合适的IO口
  • 注意防静电(尤其是冬天)

你可能感兴趣的:(STM32学习)