历史上的今天

今天是:2024年09月06日(星期五)

正在发生

2018年09月06日 | STM32F103 PB3 PB4 设置成普通GPIO的配置

发布者:朱颜素韵 来源: eefocus关键字:STM32F103  PB3  PB4  普通GPIO  配置 手机看文章 扫描二维码
随时随地手机看文章

最近由于任务需要,用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);

}

上面的代码是我的工程中的一段初始化代码,其中使用到了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  配置 引用地址:STM32F103 PB3 PB4 设置成普通GPIO的配置

上一篇:STM32F10x系列的MCU配置PB3和PB4为普通IO口
下一篇:STM32F103RE使用SPI3作为从模式

推荐阅读

概念简述除颤器表明了医疗保健未来的发展方向。这种设备已成为挽救生命的重要技术,但就在几年前,只有医院和救护车才会配备,而且也只有经过专门培训的专业医护人员才会使用。有些人对除颤器的作用还持怀疑态度。想象一下,如果一名同事突然捂住自己的胸口,然后倒在地上,旁边未受过专门培训的员工会怎么做呢?肯定是赶紧跑到柜子边,砸碎玻璃,取出除颤...
是德科技宣布与 Kandou Bus 达成合作,携手推进高速数字信令应用向深远发展;是德科技的测试解决方案将用来对 Chord™ 信令发射机和接收机设计进行表征。是德科技是一家领先的技术公司,致力于帮助企业、服务提供商和政府客户加速创新,创造一个安全互联的世界。 5G 技术推动了数据密集型应用的蓬勃发展,譬如虚拟现实(VR)、物联网(IoT)、人工智能(A...
9月3日晚间消息,华为在2020IFA举行了主题为“对欧洲的愿景和承诺”的演讲活动,华为消费者业务集团欧洲区总裁沃尔特·吉在活动上宣布,由华为开发的应用程序商店App Gallery在欧洲拥有3300万用户。业界期盼的麒麟9000芯片并没有出现。App Gallery在欧洲拥有3300万用户  华为消费者业务集团欧洲区总裁沃尔特·吉在演讲中再次提到了华为的“1...
9月4日,中京电子发布了关于设立产业基金的进展公告。中京电子于2021 年7月13日召开第四届董事会第三十一次会议审议通过了《关于对外投资设立产业基金的议案》,公司拟与广东恒健资产管理有限公司及其关联方发起设立产业基金,基金总规模为人民币5亿元,其中公司及公司子公司认缴出资2.5亿元。近日,该产业基金已完成工商登记手续,并取得了广州南沙经济...

史海拾趣

问答坊 | AI 解惑

50kHz调频光接收电路

50kHz调频光接收电路 作者:未知 文章来源:未知[code language=\"J#\"] [/code] …

查看全部问答∨

机器人运动学初级篇(1)

本帖最后由 paulhyde 于 2014-9-15 09:36 编辑 里面有各种机器人的运动原理和方案  …

查看全部问答∨

正确的布局和元件选择是控制EMI的关键

摘要:理解电压调节器的物理特性对于设计符合EMI和EMC兼容性要求的电源系统至关重要。开关调节器(降压、升压、反激以及SEPIC拓扑结构)的物理特性对于元件选择、电磁设计以及PCB布局具有特殊的指导意义。漏感、ESR和ESL的寄生效应是优化电路性能的关 ...…

查看全部问答∨

在VxWorks下如何打印文件

最近在做VxWorks下的打印功能,可是VxWorks不像Windows或Linux那样提供“所见即所得”的GDI函数接口, 所以对于在VxWorks下做可打印和可显示的GDI函数接口一头雾水,无从下手,最近看到了介绍打印机控制语言 PCL和PostScript,感觉里面介绍的东西 ...…

查看全部问答∨

建文件

怎么才能在建立的项目中.c文件中添加一子文件如.h文件…

查看全部问答∨

关于单片机与PC机的串口通信问题。请高手指点。急!

我做了一个串口通信模块,但不知道是为什么,单片机刚开始工作的时候,串口传到PC机上的数据还是对的,但运行一段时间后,数据就不对了,比先前的大很多,大到几万,而前面正确的只在10以内,不知道是什么原因。请高手指点!下边是对串口的一些设置 ...…

查看全部问答∨

NE555上面写着16M/38M......我可能想多了

刚接触555的时候,我知道555最高频率不会超过500K,后来听说有所提高,刚才百度的时候,看到一个说最高2M。   最近,我在整理我的元器件,无意发现,有几块NE555上面写着 16M或者38M。 但是百度了没反应。 想去 ALLDATESHEET,发现进不去 ...…

查看全部问答∨

STM8!8位单片机的终结者吗?!

网上现在 STM8 火爆,价格便宜,据说128K  flash 的20元,只是现在还不好买,性价比不错,而且是5V的,从网上下载了 STM8 用户手册粗看了一下,感觉是我最偏爱的 6502(类拟飞思卡尔 6800) 内核的升级版,但是指令系统比现在的飞思 ...…

查看全部问答∨

提个似乎很少人去研究的问题~STM32选项字的那两个用户字节~

也就是STM32选项字中,可以被用户使用的两个字节: 位于:0x1FFFF804,0x1FFFF806.这个理论上用STM32的库函数FLASH_ProgramOptionByteData是可以写入的.但我试了,写入后,无论是读FLASH->OBR,还是直接从地址读,都读不出我之前写入的字~ Program ...…

查看全部问答∨

版主:STM32外部中断EXTI调试失败

使用万利开发板进行EXTI简单调试:设置PD3,PD4引脚作为中断输入端口,他们分别与板载按键KEY2,KEY3相连。设置好后主程序运行正常,可一旦按下KEY2或KEY3任何一个产生中断信号时,主程序死掉,中断也进不去!! 附EXTI设置源码: *********** ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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