OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10509|回复: 4

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

[复制链接]

38

主题

248

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
463
金钱
463
注册时间
2011-2-11
在线时间
12 小时
发表于 2014-7-25 11:18:27 | 显示全部楼层 |阅读模式
5金钱

我在做一个开发板,基于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\pc10给uart4使用会使能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(usart的5根线成1组,spi的4根线成一组)的复用后,还能否可以使用默认功能?
使能某模块的remap后,相关io还可以单独选用默认功能和复用功能吗?

默认、复用、remap这三种功能是互斥的吗?


Openedv大力支持的开源RTOS  --Trochili RTOS(飞鸟)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-25 13:00:37 | 显示全部楼层
建议楼主参考一下原子哥的PWM做呼吸灯的那个程序,看完你会有很大收获的

1、复用串口,用到哪个IO就初始化哪个IO作为复用功能即可,其他的还是能做普通IO用的(这个没试过,理论上行,有空试验一下)
2、答案同第一个问题
3、答案同第一个问题
4、如果你只是当普通IO用的话就初始化成普通IO模式即可,不初始化复用IO
5、可以试验一下
6、答案同第一个问题

我目前用过IO复用成SPI2,但是他的NSS管脚我当普通IO用的,可以用,置于你说的remap之后原来那个IO能不能用默认功能就没试过,要做相应的试验才知道。

坐等大神、原子哥出现
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

38

主题

248

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
463
金钱
463
注册时间
2011-2-11
在线时间
12 小时
 楼主| 发表于 2014-7-26 00:00:26 | 显示全部楼层
今天跑到芯片厂家专门求教了。io复用确实有规律的,但是。。。但是没有哪家给专门讲清楚。稍后找时间整理下。
楼主我的工作也是芯片相关的,好歹全程参与做过几款复杂的芯片,但没见过这么复杂的io。
Openedv大力支持的开源RTOS  --Trochili RTOS(飞鸟)
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-7-26 00:08:59 | 显示全部楼层
只要没有设置为复用输出的IO,都是可以设置为推挽输出做普通IO使用的。
另外,ADC也不属于复用功能,所以也不和其它外设冲突,设置为模拟输入即可。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2017-7-18
在线时间
31 小时
发表于 2018-3-16 16:38:39 | 显示全部楼层
同样的疑惑,求答,STM32F103C8T6 PA4 SPI1的SPI1_NSS没有使用,USART2_CK为什么用不了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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