我在做一个开发板,基于stm32f107,io管脚复用的关系搞不清楚,我的目标是尽量把f107的功能同时打开。 一 如下,假如我只是使用了usart2的前4根线,也就是流控串口,那么此时ck信号线还能作为普通gpio用吗? 二 假如我只使用usart3的7816模式,那么此时pd12还能作为tim4_chi1或者gpio用吗? 55 | | | | | | USART3_TX/
ETH_MII_RX_DV/
ETH_RMII_CRS_DV | | | | | | | USART3_RX/
ETH_MII_RXD0/
ETH_RMII_RXD0 | | | | | | | USART3_CK/
ETH_MII_RXD1/
ETH_RMII_RXD1 | | | | | | | | | | | | | | TIM4_CH1 /
USART3_RTS/
ETH_MII_RXD3 | | | | | | | | | | | | | | |
三 假如我把pc4\pc5作为eth的信号线,那么pc2\pc3还能同时做为adc用吗? 17 | | | | | | | | | | | | ADC12_IN13/
ETH_MII_TX_CLK | | | | | | | ADC12_IN14/
ETH_MII_RXD0(8)/
ETH_RMII_RXD0 | | | | | | | ADC12_IN15/
ETH_MII_RXD1(8)/
ETH_RMII_RXD1 | |
四 复用功能是通过一个函数操作的
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
比如这里为了把pc11\pc10给uart4使用会使能RCC_APB2Periph_AFIO复用,那么和uart4不相干的pc12此时是只能做为gpio用, 还是只能uart5 tx用?或者用户可以选用?
还有就是启动RCC_APB2Periph_AFIO复用后,但是我没有配置使用uart4,那么pc10\pc11是不是还可以当作gpio用? 78 | | | | | | USART3_TX/
SPI3_SCK/
I2S3_CK | | | | | | | | | | | | | | USART3_CK/
SPI3_MOSI/
I2S3_SD |
五usart1 remap之后,tx\rx就跑到pb6和pb7了,假如我只是用到两线串口,那么此时pa11\pa12可以给usb用吗? Pa8可以作为mco用吗?可以让mco、usb、usart1同时工作吗? 67 | | | | | USART1_CK/
OTG_FS_SOF /
TIM1_CH1(8)/
MCO | | | | | | | USART1_TX(7)/
TIM1_CH2(7)/
OTG_FS_VBUS | | | | | | | USART1_RX(7)/
TIM1_CH3(7)/
OTG_FS_ID | | | | | | | USART1_CTS /
CAN1_RX /
TIM1_CH4(7)/
OTG_FS_DM | | | | | | | USART1_RTS /
OTG_FS_DP /
CAN1_TX(7) /
TIM1_ETR(7) | |
六 假如remap了spi3,但是不使用spi3 nss的功能(使用其他gpio做软cs),那在使用spi3的时候,pa4还能同时做dac用吗? 29 | | | | | SPI1_NSS(7)/
DAC_OUT1 /
USART2_CK(7) /
ADC12_IN4 | | |
我的疑惑主要是io复用和remap的原则找不到。网上资料也没有清楚的说明。我了解到的是: 每个引脚可能有多个功能,1 默认功能,2 复用功能 3 remap功能
那么使能某组gpio(usart的5根线成1组,spi的4根线成一组)的复用后,还能否可以使用默认功能?
使能某模块的remap后,相关io还可以单独选用默认功能和复用功能吗? 默认、复用、remap这三种功能是互斥的吗?
|