收藏官网首页
查看: 16497|回复: 0

STM32复用的GPIO引脚配置

65

主题

123

帖子

787

积分

高级会员

Rank: 4

积分
787
跳转到指定楼层
楼主
发表于 2015-7-29 18:45:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
教您5分钟接入机智云,实现傻瓜式开发
STM32复用的GPIO引脚配置
STM32所有内置外设的外部引脚都是与标准GPIO引脚复用的,例如你举的这个例子,21管脚为PB10/SCL2/TX3,表示在上电之后它的默认功能为PB10,而I2C2SCLUSART3TX为它的复用功能。
STM32基本上每个引脚都有8种配置模式:
1)浮空输入
2)带弱上拉输入
3)带弱下拉输入
4)模拟输入
5)推挽输出
6)开漏输出
7)复用推挽输出
8)复用开漏输出
通常有5种方式使用某个引脚功能,它们的配置方式如下:
1)作为普通GPIO输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。
2)作为普通GPIO输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。
3)作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。
4)作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。
5)作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。
--------------------------------------------------------------------------------、
注意如果有多个复用功能模块对应同一个引脚,只能使能其中之一,其它模块保持非使能状态。
比如你要使用2122脚的USART3功能,则需要配置21脚为复用推挽输出或复用开漏输出,配置22脚为某种输入模式,同时使能USART3并保持I2C2的非使能状态
--------------------------------------------------------------------------------
STM32JTAG引脚复用
DB3DB4JTAG引脚复用,我并非用JTAG-DP调试端口,而是SW-DP,只需要JTMS/SWDIOJTCK/SWCLK。但是stm32复位后,JTAGSW默认同时开启的,即所有的JTAG端口均被系统保留,软件设置GPIO是不起作用的,所以导致DB4一直为高电平,DB3一直为低电平,ST的文档里说明,如果要释放多余的JTAG端口,需设置SWJ_CFG[2:0]010,关闭JTAG-DP,启用SW-DP并且开启端口复用的始终,在代码上体现是这样的:
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
备注:若SWD被禁后无法下载程序,则按住复位键,点击下载程序
STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。具体方法如下:
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable JTAG-DP 禁用 + SW-DP 使能
GPIO_Configuration(); // 配置使用的 GPIO

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

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

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