STM32F103 PB3 PB4 设置成普通GPIO的配置
一个ESP8266的小项目
https://blog.csdn.net/shitou123xsx/article/details/90550098
最近由于任务需要,用STM32F103C8T6做了一块板子,以前一直在用JLINK给芯片下载程序【swd】,从未使用过STM32 JTAG下载功能,JTAG功能中包含了PB3 PB4。这次在做的板子中恰巧使用到了PB3引脚用来做普通GPIO口。在不知情的情况下调试了一天,板子上的所有GPIO口都能够正常工作,唯独PB3这个引脚经过多次配置都无法正常的使用。
经过查阅资料发现PB3引脚默认配置为JTAG功能,如果想要将PB3设置成普通GPIO口功能需要在配置的时候关闭PB3引脚的JTAG功能,让其可以充当普通GPIO口来进行使用。
void Guang_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
/*******GPIOB********/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
上面的代码是我的工程中的一段初始化代码,其中使用到了PB3作为输入功能。在上述代码中的
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
在这两行代码中开启了AFIO时钟,禁止使用了芯片的JTAG功能(GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);或者使用寄存器操作方式AFIO->MAPR|=2<<24;)另外在禁止芯片的JTAG功能时不能错误的吧芯片的swd功能禁止掉,如果禁止了芯片的SWD功能,那就只有换个芯片了。经过这样的简单配置PB3就可以正常的充当GPIO口使用了。其实在设计板子的时候如果芯片的GPIO口数量充足尽量不要去使用PB3 PB4 这两个引脚,以免在后续的开发过程中被这个问题挡住去路,拖延了项目的开发进度。
关于重映射大家可以参考下这个文章https://wenku.baidu.com/view/84aae02df705cc1754270948.html。
STM32F103 PB3 PB4 设置成普通GPIO的配置相关推荐
- 关于STM32 PB3 PB4 如何设置成普通GPIO的配置
转载地址 https://blog.csdn.net/love33521/article/details/8308036 对于初学习者来说为什么用到PB3和PB4时无法控制输出呢? 下面就这一问题进 ...
- STM32F103C8T6配置PB3管脚为普通GPIO的方法
最近在做课程设计,使用的GPIO口比较多,由于管脚不足,以至于不得不使用PB3.PB4管脚,但发现普通的配置GPIO的方式不能正常的使用,从在不知情的情况下调试了大半天,板子上的一般的GPIO口都能够 ...
- STM32单片机PB3/PB4/PA15用作普通IO使用
STM32单片机PB3/PB4/PA15这三个引脚比较特殊,上电复位默认是作为调试端口使用的,进行电路设计的时候应尽量避免将PB3/PB4/PA15这三个引脚当作普通IO使用:若要将它们作为普通的IO ...
- STM32F103:SWJ调试端口设置成普通I/O口——PA13,PA14,PA15,PB3,PB4
本文章技术信息均出自:STM32F103系列超详细参考手册-中文版 一.SWJ调试端口 STM32有两种程序调试接口(程序烧写口),具体如下: SWD调试接口: PA13.PA14共两个引脚. JTA ...
- GD32 关于PB3,PB4,PA15 的GPIO工作不正常的问题-设置为普通gpio
PB3,PB4 的默认引脚功能是JTAG 或SWD功能 我们应该修改io的功能映射,涉及函数有 /*!\brief configure GPIO pin remap\param[in] gpio_re ...
- STM32F103的映射的介绍、GPIO端口初始化设置和点流水灯详细操作
文章目录 一.STM32F103的映射介绍 1.地址映射介绍 2.寄存器映射的介绍 二.GPIO端口的初始化设置 1.GIPO简介 2.时钟配置 3.输入输出模式设置 4.最大速率设置 三.实例--流 ...
- STM32F103 PB3,PB4,PA15的使用
标题STM32F103 JTAG/SWD调试口的使用. 使用STM32很多年了,开始使用的是JTAG的调试下载,受JLIN上面的接口影响,PCB上一直放的是20PIN的标准座,后来空间有点紧张又改为1 ...
- STM32学习记录--关于按键配置(PB3 PB4)
目录 问题 解决方案 问题 有一个项目需要用到PB3与PB4配置成按键输入,这原理图的引脚配置可以看到,因为PB3和PB4在默认情况下是做JTAG调试用的.如果需要将其当普通GPIO使用,需要关闭JT ...
- STM32-SWD仿真时PB3,PB4,PA15使用问题
上代码: void generalIO_Init(void) //通用IO口初始化 {//GPIO端口设置GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2Per ...
最新文章
- android Service 的使用
- 服务器可以pyqt显示吗,用pyqt+socket实现远程操作服务器的一个例子,PyQtsocket,方法,示例...
- 第十七天:规划沟通管理
- java判断日期是否是同一周_JAVA里面怎样判断一个日期是否是星期六或者星期天,给出原代码,多谢!!!!!!!!!!...
- JavaScript笔记-使用JS管理URL链接(前端小技巧)
- compile error
- iOS 操作系统被曝无线网络命名bug 导致 iPhone无法连接无线网络
- Windows 7 SP1意味着XP降级的结束
- java数组函数_Java数组
- 阿里云服务器ECS测评
- 导向滤波与opencv python实现
- 解决windows 下文件名太长无法删除的问题
- centos7 安装英伟达驱动;cuda;docker离线安装;docker gpu离线安装;制作自己的cuda镜像;安装 容器中ssh协议
- 三种常见的网络/路由模拟器
- IOS证书制作,最简单的在线制作流程
- Hbase思维导图之物理模型
- ttf格式字体怎么安装教程
- 应变/温度数据采集系统设计方案——德维创(DEWETRON)
- Redmine配置邮箱
- Spark课后练习来了