STM32 PC13 PC14 PC15 PB3 PB4 PA13 PA14 PA15 做普通IO口笔记

发布者:WhisperingWish最新更新时间:2025-11-04 来源: bilibili关键字:STM32  普通IO口 手机看文章 扫描二维码
随时随地手机看文章

在MCU刚上电时,PC13作为侵入检测TAMPER引脚, PC14、PC15默认是作为连接32.768K低速外部晶振用的脚,PB3、PB4、PA15是JTAG调试脚,不能直接作为普通IO使用,下面是将他们作为普通IO使用的配置方法:

STM32的PC13、PC14、PC15用作普通IO口设置方法

1.引脚定义

2.引脚用作普通IO口的条件

注:

1、最新文档中已经删除“在同一时间只有一个引脚能作为输出”也就是三个引脚可以同时作为输出引脚,其他条件未变 。

2、需要备份区域由VDD供电才可以。把VBAT通过一个100nf电容接到VDD上,重新上电3个LED就可以闪烁了。手册说不能驱动LED,我把LED用灌电流的接法(共阳极)每路串接2K电阻,一共2MA的电流。发现也没什么问题,长时间点亮测试了一下芯片也算是常温,没有很热。


3.  代码

void gpioc_to_io(void)

 {

    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE );

    PWR_BackupAccessCmd( ENABLE );/* 允许修改RTC和后备寄存器*/

    RCC_LSEConfig( RCC_LSE_OFF ); /* 关闭外部低速时钟,PC14、PC15可以用作普通IO*/

    BKP_TamperPinCmd(DISABLE);  /* 关闭入侵检测功能,PC13可以用作普通IO*/


    GPIO_InitTypeDef GPIO_InitStructure;

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 |GPIO_Pin_14 | GPIO_Pin_15;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

    GPIO_Init(GPIOC, &GPIO_InitStructure);


    PWR_BackupAccessCmd(DISABLE);/* 禁止修改RTC和后备寄存器*/

    //BKP_ITConfig(DISABLE);       /* 禁止TAMPER 中断*/

}

STM32的PB3、PB4、PA15用作普通IO口设置方法,禁用jtag,使用SW


RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB , ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //关闭JTAG的PB3 PB4 PA15的功能,作为普通I/O口使用,不影响SWD的下载调试。

STM32的PA13、PA14用作普通IO口设置方法,禁用jtag,禁用SW


RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB , ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //关闭所有的JTAG/SWD功能, PB3 PB4 PA13 PA14 PA15作为普通I/O口使用。

其他禁用


GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,

ENABLE);//单独关闭PB4的JTAG功能,将PB4做为普通I/O使用。


关键字:STM32  普通IO口 引用地址:STM32 PC13 PC14 PC15 PB3 PB4 PA13 PA14 PA15 做普通IO口笔记

上一篇:【STM32单片机学习】第11章 基础重点—SysTick定时器
下一篇:STM32读写W25Q

推荐阅读最新更新时间:2026-03-19 21:31

STM32】IIC的基本原理 实例:普通IO口模拟IIC时序读取24C02
IIC的基本介绍 IIC的简介 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。它是半双工通信方式。 IIC总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。 IIC总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
[单片机]
【<font color='red'>STM32</font>】IIC的基本原理 实例:<font color='red'>普通</font><font color='red'>IO口</font>模拟IIC时序读取24C02
stm32普通IO口模拟iic时序
1,用stm32的普通IO口模拟iic时序,可以用较少的IO口实现iic功能,在实际使用中有很大优势。 2,stm32的IO可以设置为推挽,开漏输出模式,在开漏输出下,如果带上拉电阻,则可以双向传输数据, 如输出1(PCout()=1),从它的输入引脚可以读出状态(PCin()), 这样在不需要配置输入,输出模式,就可以实现iic数据线的写和读。 程序实现过程: #define AT_IIC_SCL PCout(12) #define AT_IIC_SDA PCout(11) #define AT_IIC_SDA_READ PCin(11) void I2cIoInit() { GPIO_InitT
[单片机]
stm32 的PA13,PA14, PA15做普通IO口的问题
这两天在玩oled屏,想用几个按键控制舵机,oled显示,于是把三个按键接到了PA13,14,15上发现没有任何反应后来一查手册发现有问题 可以看到PA13口的Main function是JTMS-SWDIO,不是PA13,所以要想使用PA13的普通IO口能力,就要先把IO口的复用功能打开,再把JTMS-SWDIO功能关掉就可以。 做输入,输出口都可以 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); 再后来又发现了一个问题:就是单步调试的时候不能调试,
[单片机]
stm32普通IO口捕获PWM的高电平
思路:普通IO口配置上升沿下降沿触发中断,然后配置一个定时器(周期大于等于PWM周期),在IO口中断中读取定时器计数。 定时器不需要配置中断 void TIM3_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; /* TIM2 clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); TIM_TimeBaseStructure.TIM_Prescaler = 72-1; //72M/72=
[单片机]
串口与普通IO口的区别
General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,人们利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。 每个GPIO端口可通过软件分别配置成输入或输出。Maxim的GPIO产品线包括8端口至28端口的GPIO,提供推挽式输出或漏极开路输出。提供微型3mm x 3mm QFN封装。 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface) 是指数据一
[单片机]
串口与<font color='red'>普通</font><font color='red'>IO口</font>的区别
STM32F103C8T6使用普通IO口模拟串口收发
导: 由于项目系统功能版本升级,需要开发一个带有串口收发的功能,但是硬件串口已经全部使用,发现还剩余部分普通gpio口可以使用,故打算采用软件模拟的方法实现该功能; 很久以前使用过51单片机来实现过类似功能,现在首次使用stm32来实现该功能;先借鉴一些网上的demo; 产品的代码初始框架不是我自己搭建的,下回轮到我来搭,一定一定用操作系统来完成,要不然资源的配置,考虑太多,真的麻烦死了; 参考:https://blog.csdn.net/yunjie167/article/details/79808464 1.阻塞的通讯 阻塞式通讯 51单片机,是没有操作系统的,并且定时器也是非常的有限的;所以再模拟iic通讯,
[单片机]
STM32F103C8T6使用<font color='red'>普通</font><font color='red'>IO口</font>模拟串口收发
用STM32F103RCT6的普通IO口模拟串口的实验
使用了STM32CubeMX及Keil (HAL库) 材料:stm32开发板、USB转TTL?CH340模块、杜邦线、st-link 实验原理: 模拟了异步半双工通信 波特率可变 起始位:1 数据位:8 停止位:1 (1个数据10位) 无校验位 传输一个字符的时候先发送1位起始位,然后是8位数据位(从低位到高位),最后是一位停止位 用1个普通的GPIO口输出(模拟TXD),模拟了以上发送的高低电平,采用定时器延时(一个位对应的电平的持续时间为1000000/波特率 μs) 用1个普通的GPIO口中断输入(模拟RXD),模拟了接收,下降沿触发中断,采用定时器延时,大概在数据位中央采集1次电平数据 实验设计: 使用了PA1作
[单片机]
STM32F10x系列的MCU配置PB3和PB4为普通IO口
对于初学习者来说为什么用到PB3和PB4时无法控制输出呢? 下面就这一问题进行分析讲解。 首先,STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些 端口设置为普通I/O口。具体方法如下: 在GPIO_Configuration(); // 配置使用的 GPIO 口: 注意:不要忘记在RCC_Configuration()中开启AFIO时钟, //AFIO时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SW
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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