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

lichongyang
lichongyang
lichongyang
111
文章
0
评论
2019年9月25日20:12:08 评论 596 次浏览

最近博主用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口的情况。
————————————————
版权声明:本文为CSDN博主「qhw5279」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qhw5279/article/details/72630637

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信小程序
  • 我的微信小程序扫一扫
  • weinxin
lichongyang
  • 本文由 发表于 2019年9月25日20:12:08
  • 转载请务必保留本文链接:https://www.chongyangli.com/archives/stm32f1%e7%b3%bb%e5%88%97pb3%ef%bc%8cpb4%ef%bc%8cpa13%ef%bc%8cpa14%ef%bc%8cpa15%e7%94%a8%e4%bd%9c%e6%99%ae%e9%80%9aio%e5%8f%a3%e7%9a%84%e7%89%b9%e6%ae%8a%e9%85%8d%e7%bd%ae/
物联网的嵌入式编程 操作系统

物联网的嵌入式编程

嵌入式编程在使设备满足人们的需求方面具有悠久的历史。但是,它在很大程度上仍然被应用程序编程所掩盖。当应用程序程序员采用相对高级的面向对象的语言(如C ++或Java)或图形化应用程序开发环境(如MAT...
大家来说说自己对GPIO 浮空输入的理解 单片机

大家来说说自己对GPIO 浮空输入的理解

原子哥:顾名思义,浮空就是 浮在空中.也就是没有什么把他拉下来,也没有什么把它拉上去. 浮空最大的特点就是电压的不确定性,它可能是0V,也可能是VCC,还可能是介于两者之间的某个值...
FreeRTOS 系统时钟节拍和时间管理 操作系统

FreeRTOS 系统时钟节拍和时间管理

FreeRTOS 的时钟节拍 任何操作系统都需要提供一个时钟节拍,以供系统处理诸如延时、 超时等与时间相关的事件。时钟节拍是特定的周期性中断,这个中断可以看做是系统心跳。 中断之间的时间间隔取决于不同...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: