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

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

  1. STM32F103:SWJ调试端口设置成普通I/O口——PA13,PA14,PA15,PB3,PB4

    本文章技术信息均出自:STM32F103系列超详细参考手册-中文版 一.SWJ调试端口 STM32有两种程序调试接口(程序烧写口),具体如下: SWD调试接口: PA13.PA14共两个引脚. JTA ...

  2. STM32单片机PB3/PB4/PA15用作普通IO使用

    STM32单片机PB3/PB4/PA15这三个引脚比较特殊,上电复位默认是作为调试端口使用的,进行电路设计的时候应尽量避免将PB3/PB4/PA15这三个引脚当作普通IO使用:若要将它们作为普通的IO ...

  3. STM32F10×××系列的PC13、PC14、PC15引脚用作普通IO口配置方法

    1. 引脚定义 2. 引脚用作普通IO口的条件 注:最新文档中已经删除"在同一时间只有一个引脚能作为输出"也就是三个引脚可以同时作为输出引脚,其他条件未变 3. 代码 void g ...

  4. CC2541 SDA SCL 用作普通IO口

    1:CC2541在用做硬件IIC读取SHT30电流150-200ua左右,在所以想试试使用模拟IIC读取:下图是使用硬件IIC读取的代码: 2:查阅资料:http://www.voidcn.com/a ...

  5. STM32的PB3/PB4/PA15用作普通IO使用

    本文基于STM32F105系列芯片 STM32上电直接控制PB3/PB4/PA15失效的原因 单片机上电后,大多数引脚都默认作为GPIO使用,因此单片机上电后直接控制引脚即可使用.但是PB3/PB4/ ...

  6. STM32F103ZET6开发板PB3/4,PA13/14/15等I/O口的特殊配置

    [写在前面] 最近项目上有用STM32F103ZET6开发板在做产品开发,前期测试时PB3/4,PA13/14/15因为作为JTAG/SWD仿真器的调试接口,所以不能像其他正常I/O口一样下置零. [ ...

  7. stm32F1的 PA13/PA14/PA15/PB3/PB4 作为普通引脚使用

    代码链接:https://blog.csdn.net/Mark_md/article/details/107411081

  8. STM32 PC13 PC14 PC15用作普通IO口

    PC14 PC15  关闭LSE时钟之后,就可以作为普通IO口. 先打开RCC_APB2Periph_AFIO时钟: 再使用函数RCC_LSEConfig( RCC_LSE_OFF ); PC13先打 ...

  9. AT32F403A PB3 PB4 PA15如何用作普通IO使用

    AT32F403A 将 PB3 PB4 PA15配置成普通IO使用,配置方法基本和STM32F103类似 crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, ...

最新文章

  1. nanomsg:ZeroMQ作者用C语言新写的消息队列库
  2. Spring-Security (学习记录四)--配置权限过滤器,采用数据库方式获取权限
  3. 键盘消息捕获--MFC
  4. python 画蜘蛛_如何学习 R 绘图?
  5. Linux node使用npm成功安装命令后,执行时却报找不到命令的问题
  6. Eclipse开发JSP页面,xhtml页面卡死的解决方法
  7. python 如何封装dll_python怎么封装dll
  8. linux远程控制本地用户登录,linux 本地无法登录 远程可以登陆的解决办法
  9. 服务器云端设置怎么退出_换新手机时,3个地方要及时清除退出,别让旧手机成隐私“内鬼”...
  10. antdesign 所兼容的浏览器_React爬坑之路——Antd兼容IE
  11. Python实现样本类别的可视化(绘制饼图,展示各类别样本的比例)
  12. python语言程序设计实践教程答案实验五_Python程序设计实验五
  13. 同时开多个独立窗口Visio 2003/2007版本的软件
  14. 浏览器解析jsx_jsx的本质
  15. python关于列表去重和删除的方法
  16. 有意思的张飞日记-_-
  17. Mybatis配置分页
  18. SILC 超像素分割代码
  19. 链接器lds文件简介
  20. 亚马逊广告怎么做?广告效果如何提升?

热门文章

  1. 365天英语口语学习_18,挂断电话
  2. 五月出游品尝初夏滋味455
  3. 使用lnmp与wordpress做1个外贸询盘网站
  4. 图隐私论文速递:A graph modification approach for k‑anonymity in social networks using the genetic algorith
  5. 房地产行业唯美大气工作总结汇报PPT模板
  6. 如何留住关键人才与核心员工
  7. linux lite改中文,Linux Lite 发布 4.0 版本
  8. STM32芯片内部温度监控调试记录
  9. 创投更重点关注技术、场景“两手抓”的科技企业
  10. 『论文笔记』ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks!