最近博主用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口

推荐阅读

串口及其中断初始化void USART1Init(void){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GP...
新浪财经讯9月6日至7日,中国发展高层论坛专题研讨会“贸易、开放与共享繁荣”在北京钓鱼台国宾馆举行。清华大学微电子所所长魏少军出席并发言。  魏少军表示自1970年开始有全球GDP数据起,到2001年,31年的时间当中,全球GDP从3.4万亿美元增长到33.4万亿美元,换句话说,我们用31年的时间全球GDP增加了30万亿美元,年均增速大概是7.65%。但是...
丰田 从 2020 年开始部署了自己的设计的电池系统,这个电池系统大小为 2157.0mm*1288.0mm*340.5m,电池能量为 54.35kWh,容量 153Ah(51Ah 的 3P),标称电压为 355V,电池的重量为 415kg;采用了 11 个模组的设计,包含 288 个电芯(96 串)。最近找到了这款电池系统的拆解信息,我们根据这个电池系统来探讨下。 图 1 丰田设计的电池系...
9月8日晚,比亚迪全新e平台3.0在深圳发布,此次发布的e平台3.0有什么不同之处呢,比亚迪总裁王传福在会上这样解释,如果说比亚迪e平台1.0实现了三电关键部件平台化,比亚迪e平台2.0是实现了整车关键系统模块化,全新的比亚迪e平台3.0则实现了整车架构平台化,充分发挥电动化智能化优势。历经18年的创新和迭代,该平台被比亚迪视为下一代电动车的摇篮。综合...

史海拾趣

问答坊 | AI 解惑

Systemverilog 资料下载

FPGA的验证一直以来是不受重视的。 通常在RTL仿真后,采用SignalTap 和Chipscope来解决验证的问题。 当FPGA规模变大,编译时间很长,设计又很复杂时,这种方法的局限性就显露出来。 借鉴ASIC的验证概念,是解决这个问题的有效手段。     ...…

查看全部问答∨

深度解析LPC1100低功耗设计的七个秘密

作者:恩智浦半导体  Rob Cosaro ARM Cortex-M0内核使LPC1100的功耗数据与当前的低功耗微控制器保持一致,但这种内核的处理效率远远高于目前的8位和16位处理器。这可以降低电池供电应用的平均电流,延长电池寿命,也可减少其他应用的功 ...…

查看全部问答∨

如果提高硬件方面的知识

以前主要接触的软件,现在想提高自己硬件方面的知识。 我硬件知识很弱。 怎么入手?…

查看全部问答∨

关于linux驱动的疑惑

我是linux新手,想请教一下高手 在写ALSA声卡驱动的时候,所形成的.probe()和.remove()函数与上层的file_operation结构体是怎样关联的? 它们的关系是怎样的?还有一般ALSA体系中file_operation结构体的在哪个文件中定义关联了write(),open(),r ...…

查看全部问答∨

高分求 如何自动运行“今日插件”!!!!

我做了个今日插件和调用EXE,想用EXE去运行今日插件,但是如何实现呢?不想通过“设置”中的“今日”执行 我发现有些程序是挂载到SHELL32.EXE程序下的,而我的程序是挂载到MSTLI.EXE程序上的 如何才能实现挂载到SHELL32.EXE上呢?…

查看全部问答∨

推荐几款闪存芯片

4M左右,可以更大,容易找到 还有用哪款单片机做LED单色屏幕(4000像素左右)的处理器好啊?谁做过类似作业的给我参考参考啊…

查看全部问答∨

怎么样准确地获得本机声卡设备名(device name)或者 device object指针

我想在底层通过驱动向真正的声卡发包让它读或者写(播放/录音), ///...获取声卡设备 ///...生成irp NTSTATUS status = IoCallDriver(pRealDev, Irp);                         ...…

查看全部问答∨

关于数据采集卡函数的调用

我在使用成都纵横公司的jv58115型数据采集卡,我想知道在我建立的C++的工程里如何能够调用公司给的一些函数 比如读取数据的函数ReadData.(如果方法可以的话一定给分)…

查看全部问答∨

不要再怀疑了!LED日光灯挺好的!

说说LED日光灯的优势和普及趋势。 1、LED做成日光灯管的生产门槛较低。现成的各类配件(塑料管,铝塑管,内置电源,PCB,堵头)极其丰富,有电子组装经验的工厂能在短期内批量生产出来; 2、使用安装方法简便,可以在原灯架上改,也可以使用厂家 ...…

查看全部问答∨

MIL-STD-1553B入门视频教程 1553B总线资料课件

MIL-STD-1553B入门视频教程 1553B总线资料课件     MIL-STD-1553B入门视频教程,详细介绍了MIL-STD-1553B总线的历史背景、优点和应用;MIL-STD-1553B总线的基础知识介绍(1553B的网络结构、1553B工作模式、1553B传输方式、1553B数据 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved