野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20021|回复: 1

stm32 io复用太复杂了,大家帮我看看,有问题搞不定

[复制链接]
发表于 2014-7-25 11:11:14 | 显示全部楼层 |阅读模式
我在做一个开发板,基于stm32f107io管脚复用的关系搞不清楚,我的目标是尽量把f107的功能同时打开。
如下,假如我只是使用了usart2的前4根线,也就是流控串口,那么此时ck信号线还能作为普通gpio用吗?
  
84
  
PD3
I/O
FT
PD3
 
USART2_CTS
85
PD4
I/O
FT
PD4
 
USART2_RTS
86
PD5
I/O
FT
PD5
 
USART2_TX
87
PD6
I/O
FT
PD6
 
USART2_RX
88
PD7
I/O
FT
PD7
 
USART2_CK
假如我只使用usart37816模式,那么此时pd12还能作为tim4_chi1或者gpio用吗?
  
55
  
PD8
I/O
FT
PD8
 
USART3_TX/
  ETH_MII_RX_DV/
  ETH_RMII_CRS_DV
56
PD9
I/O
FT
PD9
 
USART3_RX/
  ETH_MII_RXD0/
  ETH_RMII_RXD0
57
PD10
I/O
FT
PD10
 
USART3_CK/
  ETH_MII_RXD1/
  ETH_RMII_RXD1
58
PD11
I/O
FT
PD11
 
USART3_CTS/
  ETH_MII_RXD2
59
PD12
I/O
FT
PD12
 
TIM4_CH1 /
  USART3_RTS/
  ETH_MII_RXD3
60
PD13
I/O
FT
PD13
 
TIM4_CH2
61
PD14
I/O
FT
PD14
 
TIM4_CH3
假如我把pc4\pc5作为eth的信号线,那么pc2\pc3还能同时做为adc用吗?
  
17
  
PC2
I/O
 
PC2
ADC12_IN12/
  
ETH_MII_TXD2  
 
18
PC3
I/O
 
PC3
ADC12_IN13/  
  
ETH_MII_TX_CLK  
 
33
PC4
I/O
 
PC4
ADC12_IN14/
  ETH_MII_RXD0(8)/
  ETH_RMII_RXD0
 
34
PC5
I/O
 
PC5
ADC12_IN15/
  ETH_MII_RXD1(8)/
  ETH_RMII_RXD1
 
复用功能是通过一个函数操作的   
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
比如这里为了把pc11\pc10uart4使用会使能RCC_APB2Periph_AFIO复用,那么和uart4不相干的pc12此时是只能做为gpio用,
还是只能uart5 tx用?或者用户可以选用?
还有就是启动RCC_APB2Periph_AFIO复用后,但是我没有配置使用uart4,那么pc10\pc11是不是还可以当作gpio用?
  
78
  
PC10
I/O
FT
PC10
UART4_TX
USART3_TX/
  SPI3_SCK/
  I2S3_CK
79
PC11
I/O
FT
PC11
UART4_RX
USART3_RX/
  SPI3_MISO
80
PC12
I/O
FT
PC12
UART5_TX
USART3_CK/
  SPI3_MOSI/
  I2S3_SD
usart1 remap之后,tx\rx就跑到pb6pb7了,假如我只是用到两线串口,那么此时pa11\pa12可以给usb用吗?
Pa8可以作为mco用吗?可以让mcousbusart1同时工作吗?
  
67
  
PA8
I/O
FT
PA8
USART1_CK/
  OTG_FS_SOF /
  TIM1_CH1(8)/
  MCO
 
68
PA9
I/O
FT
PA9
USART1_TX(7)/  
  TIM1_CH2(7)/
  
OTG_FS_VBUS
 
69
PA10
I/O
FT
PA10
USART1_RX(7)/  
  TIM1_CH3(7)/
  
OTG_FS_ID
 
70
PA11
I/O
FT
PA11
USART1_CTS  /
  CAN1_RX /
  TIM1_CH4(7)/
  
OTG_FS_DM
 
71
PA12
I/O
FT
PA12
USART1_RTS  /
  
OTG_FS_DP /
  CAN1_TX(7) /
  TIM1_ETR(7)
 
  
92
  
PB6
I/O
FT
PB6
I2C1_SCL(7)/
  TIM4_CH1(7)
USART1_TX/
  CAN2_TX
93
PB7
I/O
FT
PB7
I2C1_SDA(7)/
  TIM4_CH2(7)
USART1_RX  
六 假如remap了spi3,但是不使用spi3 nss的功能(使用其他gpio做软cs),那在使用spi3的时候,pa4还能同时做dac用吗?
  
29
  
PA4
I/O
 
PA4
SPI1_NSS(7)/
  DAC_OUT1 /
  USART2_CK(7) /
  ADC12_IN4
SPI3_NSS/I2S3_WS
我的疑惑主要是io复用和remap的原则找不到。网上资料也没有清楚的说明。我了解到的是:
每个引脚可能有多个功能,1 默认功能,2 复用功能  3 remap功能
那么使能某组gpio(usart5根线成1组,spi4根线成一组)的复用后,还能否可以使用默认功能?
使能某模块的remap后,相关io还可以单独选用默认功能和复用功能吗?
默认、复用、remap这三种功能是互斥的吗?


回复

使用道具 举报

发表于 2014-7-25 11:19:10 | 显示全部楼层
功能是互斥的,一个io口在一个时间内只能有一个功能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 08:54 , Processed in 0.029870 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表