PB3,PB4,PA13,PA14,PA15用作普通IO口的特殊配置

发布者:PeacefulSoul最新更新时间:2018-09-09 来源: eefocus关键字:STM32F1  普通IO口  特殊配置 手机看文章 扫描二维码
随时随地手机看文章

最近博主用STM32F103C8T6做了一个温度测控模块,用到PB3,PB4,PA15等引脚控制外设。发现不管怎么配置,这三个引脚都不能置零。后来发现是包括这三个引脚在内的PB3,PB4,PA13,PA14,PA15是特殊的IO口,用作JTAG/SWD仿真器的调试接口。其中PA13,PA14分别作为SWD调试的SWIO和SWCLK;PB3,PB4,PA13,PA14,PA15共同用于JTAG。这五个引脚的中英文描述如下图所示,图片来源于STM32F1参考手册:


这五个IO引脚非常特殊,正常情况下作为SWJ仿真器的调试引脚,如果要作为普通IO口使用需要特别的配置。以PA13引脚为例,该引脚在STM32F1数据手册中的描述如下图:


相较与其他的普通IO,PA13的Main function 为JTMS-SWDIO。反而普通IO口的功能在Alternate functions中的remap里。也就是说PA13要想当做普通IO口使用,就必须使用它复用功能中的重映射。因此就需要这样的两步操作:

一.在时钟配置中打开复用时钟:  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);

二.对PA13引脚进行重映射:        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 

步骤一比较好理解,这里重点叙述下步骤二的重映射操作。针对SWJ五个引脚的重映射操作方式在STM32F1参考手册中的中英文描述下图所示:

由上图可知,重映射的方式一共有三种。分别描述如下:

1.GPIO_Remap_SWJ_JTAGDisable: /*!< JTAG-DP Disabled and SW-DP Enabled */  即能用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试

2.GPIO_Remap_SWJ_Disable:  /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */  5个引脚全为普通引脚,但不能再用JTAG&SWD仿真器调试,只能用st-link调试 

3.GPIO_Remap_SWJ_NoJTRST: /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */PB4可为普通IO口,JTAG&SWD正常使用,但JTAG没有复位

如果你用到所有的五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 同理可配置只用PB4可为普通IO口的情况。


关键字:STM32F1  普通IO口  特殊配置 引用地址:PB3,PB4,PA13,PA14,PA15用作普通IO口的特殊配置

上一篇:STM32将PB3等IO用作普通IO
下一篇:STM32单片机释放PB3/PB4/PA15作为普通IO口

推荐阅读最新更新时间:2024-03-16 16:13

STM32F1学习-寄存器地址映射以及位带操作
从图中我们可以看出,所有内部设备都是挂载的外设
[单片机]
<font color='red'>STM32F1</font>学习-寄存器地址映射以及位带操作
stm32f1时钟分析
一、前言 1、本文主要讨论系统时钟以至外设时钟之间的源流关系。介绍stm32的片上时钟系统,描述系统时钟初始化函数SystemInit()对时钟的控制(从HSE到SYSCLK,第二节)与配置(SYSCLK到外设,第三节)。 2、103与107所用时钟系统略有不同,但系统时钟(SYSCLK)都是72MHz。 3、f107应当使用25MHz晶振。若采用8MHz的晶振,搭配3.0.0版固件库,则将f107当做f103使用,不能驱动通信线产品所有功能(以太网)。 4、以太网的时钟可以参考f107数据手册,附录A2. 5、RTC时钟源来自32.768kHZ晶振。 二、系统时钟SYSCLK 本节关注SYSCLK的来源。 f107
[单片机]
<font color='red'>stm32f1</font>时钟分析
STM32F103C8T6使用普通IO口模拟串口收发
导: 由于项目系统功能版本升级,需要开发一个带有串口收发的功能,但是硬件串口已经全部使用,发现还剩余部分普通gpio口可以使用,故打算采用软件模拟的方法实现该功能; 很久以前使用过51单片机来实现过类似功能,现在首次使用stm32来实现该功能;先借鉴一些网上的demo; 产品的代码初始框架不是我自己搭建的,下回轮到我来搭,一定一定用操作系统来完成,要不然资源的配置,考虑太多,真的麻烦死了; 参考:https://blog.csdn.net/yunjie167/article/details/79808464 1.阻塞的通讯 阻塞式通讯 51单片机,是没有操作系统的,并且定时器也是非常的有限的;所以再模拟iic通讯,
[单片机]
STM32F103C8T6使用<font color='red'>普通</font><font color='red'>IO口</font>模拟串口收发
3-STM32F1串口通信-查询方式
STM32F1的串口有好几组,STM32的串口还有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持 LIN、 支持调制解调器操作、 智能卡协议和 IrDA SIR ENDEC 规范、具有 DMA等。 虽然有这么多功能,但是这里为了总结串口的原理,采用最简单的查询的方式和电脑进行通信。 其实原子哥的《STM32F1开发指南-库函数版本》已经解释的非常详细了,这里只是按照我自己的风格叙述一遍而已。 使用串口的步骤 1,打开IO时钟 2,配置串口IO口模式,具体方式查看《STM32中文参考手册》8.1.11章节,接收引脚和发送引脚模式不一样的,所以要分别配置。 5,打开串口时钟 6,配置前最好复位下串口,这是个好习
[单片机]
STM32F1_SysTick系统滴答
前言 今天讲解“STM32F103 SysTick系统滴答”,“SysTick系统滴答”是属于Cortex-M3内核的一部分,主要是为运行的操作系统提供滴答时钟,如常见的操作系统:uCOS、RTOS等。不管M3芯片属于哪一家公司,它都标配有SysTick这一部分。因此,它属于芯片内核的一部分,主要是为了方便操作系统的移植。 其实,SysTick能实现的功能,都可以由TIM来实现。SysTick无非就是定时中断的功能,它完全可以由TIM定时器来完成。之所以SysTick独立出来就是因为它属于内核一部分,方便用户移植,而且简单方便。学过uCOS的人都知道,以前在51,或者430上面是由定时器完成的时钟滴答,到后面ARM公司就用到了
[单片机]
STM32F1_SysTick系统滴答
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved