历史上的今天
今天是:2024年09月06日(星期五)
2018年09月06日 | STM32F103 PB3 PB4 设置成普通GPIO的配置
2018-09-06 来源:eefocus
最近由于任务需要,用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。
史海拾趣
|
我看中了两款开发板 TQ2440 和 mini2440 下面是链接 http://item.taobao.com/item.htm?id=3727179227 http://item.taobao.com/item.htm?id=2190406747 学习用,不知道这两款哪个更好一些 谁帮忙看下… 查看全部问答> |
|
最近读STM32手册定时器部分, The auto-reload register is preloaded. Writing to or reading from the auto-reload register accesses the preload register. The content of the preload register are transferred into the shadow regist ...… 查看全部问答> |
|
1、“综合测评”测试对象为赛区推荐上报全国评奖的优秀参赛队全体队员,并在各赛区以封闭方式进行。测试题目与评分标准由全国专家组负责统一制定,并委托各赛区在当地组织,赛区专家组完成相应测试工作。全国专家组将排遣专家参加综合测评。 2、 ...… 查看全部问答> |
|
我这个是用LaunchPad驱动HT1621B型芯片,从而达到控制段式液晶,至于段式液晶屏,一定是3V地。 有图有真象先上图先: 段显显示: 我是用线搭的,DATA、WR、CS、接P1的0、1、2、 上程序: 此程序 ...… 查看全部问答> |
|
小弟初学,按照教程步骤来的。 1,新建工程,file-new-project 2,加入文件,add to project-existing file 3,编译文件,compile-compile all 显示编译成功,compile of xxx.v is successful. 4,在library选项卡 ...… 查看全部问答> |




