STM32F103学习笔记(三):PB3、PB4、PA13、PA14、PA15用作普通IO口的配置

news/2025/1/11 20:03:23/

      最近使用stm32f103c8t6进行按键上拉输入配置的时候,发现一样的电路,只是将代码PA1-PA4换做PB3-PB6接口,怎么也无法得出对应的实验结果,测得电压PB3,PB4引脚都不能置零。查阅了很多资料最终发现原来不只PB3、PB4,还有PA13-15这五个引脚不是普通的IO口,用作JTAG/SWD仿真器的调试接口,引脚描述如《STM32参考手册》中所示:

同时,这些引脚主功能(复位后)的功能如下如所示:

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

步骤一:时钟配置时同时开启AFIO复用时钟

//打开PB口时钟,AFIO复用时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | 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); 

 


http://www.ppmy.cn/news/583229.html

相关文章

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

STM32F1系列PB3&#xff0c;PB4&#xff0c;PA13&#xff0c;PA14&#xff0c;PA15用作普通IO口的特殊配置 最近博主用STM32F103C8T6做了一个温度测控模块&#xff0c;用到PB3&#xff0c;PB4&#xff0c;PA15等引脚控制外设。发现不管怎么配置&#xff0c;这三个引脚都不能置零…

开源之父--Linus

Git 很多人都知道&#xff0c;Linus在1991年创建了开源的Linux&#xff0c;从此&#xff0c;Linux系统不断发展&#xff0c;已经成为最大的服务器系统软件了。 Linus虽然创建了Linux&#xff0c;但Linux的壮大是靠全世界热心的志愿者参与的&#xff0c;这么多人在世界各地为Li…

多域间访问之林信任

前言&#xff1a;外部信任为不同域之间跨域访问资源提供了方法&#xff0c;但如果两个林中分别有多个域&#xff0c;要跨域访问资源就需要创建多个外部信任&#xff0c;有没有办法简化呢&#xff1f;有&#xff0c;只要在林跟域之间建立林信任就不需创建多个外部信任&#xff0…

Xilinx FPGA开发板

目录 一、Nexus 4 DDR开发板二、主要外围接口电路&#xff08;1&#xff09;Nexus4 DDR Artix-7FPGA引脚分配&#xff08;2&#xff09;LED灯电路&#xff08;3&#xff09;拨码开关电路&#xff08;4&#xff09;按键电路&#xff08;5&#xff09;数码管电路 一、Nexus 4 DDR…

Docker 安装 Nginx

1、获取 nginx 的镜像 # 默认是latest版本docker pull nginx 2、运行 nginx 容器 docker run --name nginx-80 -p 80:80 --rm -d nginx# --name nginx-80 设定容器的名称# -p 80:80 端口进行映射&#xff0c;将本地的80端口映射到容器内部的80端口# --rm 表示容器退出后直…

林间跨域资源访问--外部信任

前言&#xff1a; 注&#xff1a; 在同一个林内&#xff0c;通过自动创建可传递的、双向的信任关系&#xff0c;可以实现所有域之间的相互信任。但是不用林之间则不会自动创建信任关系&#xff0c;要实现两个林之间的访问需要手工创建林信任关系 。 1.创建林间信任的方法 外…

如何删除林内不必要的信任

在功能级别是 2003 的林内&#xff0c;信任关系是不用手工建立的&#xff0c;而且信任关系还是双向可传递的并且不能删除&#xff0c;对于多域的公司给管理员省了不少事&#xff0c;设想一下如果林内的某个域的 DC &#xff08;非根域&#xff09;发生了物理故障并且没有备份可…

林内域信任关系的建立

建立林内域信任 1&#xff0c; 建域&#xff1a; 在运行中输入dcpromo命令&#xff0c;建一个新域。DC机上的ip地址是10.0.0.5&#xff0c;子网掩码是255.0.0.0&#xff0c;域名为a.com;Client主机的ip地址是10.0.0.6,子网掩码为255.0.0.0,域名为b.com。 2&#xff0…