首页 > 其他分享 >STM32F103的默认测试端口(JTAG\SW)用作普通IO口的配置

STM32F103的默认测试端口(JTAG\SW)用作普通IO口的配置

时间:2023-04-23 14:35:02浏览次数:46  
标签:STM32F103 SWJ 引脚 SW DP IO GPIO JTAG

STM32F103的默认测试端口(JTAG\SW)介绍

STM32F103的PB3、PB4、PA13、PA14、PA15在默认上电状态并不是具有普通 IO 的功能的。而是用作 SWJ-DP端口(用于JTAG调试)

 

 这些引脚只有重定义功能后才能作为普通的IO口使用,所以我们需要对这些引脚进行配置的时候开启AFIO复用时钟。下面以PA15为例:

步骤一:时钟配置时同时开启AFIO复用时钟(一定要记得 AFIO 时钟的开启!!!)

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); //打开GPIOA的外设时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);


步骤二:重映射(共三种方式)

标准库下用以下函数配置,效果如下:

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没有复位

 

注1:如果将五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为:

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);


注2:如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重映射配置应写为:

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);


注3:配置只用PB4可为普通IO口:

GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);
   

特殊情况注意:

在实际测试的时候,若发现工程内上述引脚仍无法当做普通IO使用,很可能是上述初始化代码后还执行了GPIOA或GPIOB的时钟使能代码,解决办法为:上面这段初始化代码放在所有IO初始化最后就好了。

即GPIO_PinRemapConfig()之后不能再执行:

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); //打开GPIOC的外设时钟
否则引脚会变回JTAG或SWD的引脚,而无法作为普通IO使用

作者:重回桃花源 https://www.bilibili.com/read/cv16056579 出处:bilibili

标签:STM32F103,SWJ,引脚,SW,DP,IO,GPIO,JTAG
From: https://www.cnblogs.com/FBsharl/p/17346448.html

相关文章

  • margin:auto position: absolute 居中 对应在 w3c规范 中的描述
    https://www.w3.org/TR/CSS2/visudet.html 10.6 CalculatingheightsandmarginsForcalculatingthevaluesof 'top', 'margin-top', 'height', 'margin-bottom',and 'bottom' adistinctionmustbemadebetween......
  • java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check th
    java.sql.SQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''',b_5='17',b_6=''whereb_name='A'......
  • Windows10安装Transmission,并使用Web远程访问教程
    安装Transmission从官方路径下载Transmission安装包 https://transmissionbt.com/download/在组件安装界面,需要把Daemon和Webinterface,同步安装上。下载配置transmission-web-control3.访问https://github.com/ronggang/transmission-web-control ,下载最新源码包......
  • k8s-问题:[root@master log]# kubectl get node The connection to the server 192.168
    记一次测试虚拟机异常关机导致的问题[root@masterlog]#kubectlgetnodeTheconnectiontotheserver192.168.0.105:6443wasrefused-didyouspecifytherighthostorport?这个问题网上的大部分解决方案是kubeadminit直接这么搞我相信肯定能恢复,毕竟是重新初始化,但......
  • Android Studio的安装及环境配置
    AndroidStudio的安装及环境配置安装jdk下载及安装AndroidStudio下载官网:https://developer.android.google.cn/studio/往下滑:建议下载到除C盘以外的盘:下载好安装程序之后双击安装:一路next,installAndroidVirtualDevice安卓虚拟设备,就是在电脑上虚拟出......
  • odoo中打印模板处理selection字段
    在odoo中处理selection字段,通常情况下,如果拿到的是key,还要再翻译成value.这里可以用fields_get()这个函数,来实现这个问题${dict(item.fields_get(allfields=['type_id'])['type_id']['selection']).get(item.type_id)} 这里的item是数据集‘type_id’selection的字段......
  • mysql+proxysql+replication-manager的主从半同步复制+高可用+读写分离
    环境:AlmaLinuxrelease9.1MySQLCommunityServerVer8.0.33ReplicationManagerv2.2.40forMariaDB10.xandMySQL5.7SeriesProxySQLversion2.5.1-90-gbedaa6c主机分配情况:采用hyper-v创建虚拟机的方式进行的,创建1台模板之后另外3台导入虚拟机复制。1、安装mysq......
  • 230423 BMS Safety and Fault Management for Lithium Ion Batteries
    WelcometotheStoffelSystemsInsightsvideoseries.I'mEricStoffel,presidentofStoffelSystems.Today'stopicisBMSsafetyandfaultmanagement.Aswediscussedinapreviousvideo,oneoftheprimaryrolesofaBMSinalithium-ionbat......
  • Session基本使用
    介绍在WEB开发中,服务器为每个用户浏览器创建一个会话对象(session对象),一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的......
  • Adobe Photoshop 2023(MAC+Windows) +AI插件auto Photoshop stable diffusion plugin
    Adobe图像处理软件Photoshop2023正式版(24.1.1)2023年01月版发布。AdobePhotoshop2023破解版(简称PS)是一款全球流行的专业图像处理软件及照片和设计软件。AdobePhotoshop中文破解版是AdobeCreativeCloud创意云桌面程序中心的图形设计软件热门产品,它是平面设计领域和数......