hai325-289934 发表于 2018-4-27 08:54:36

STM32 PB2 PB3和PB4作为普通I/0浮空输入引脚设置有什么要求

STM32 PB2 PB3和PB4作为普通I/0输入引脚设置有什么要求?有下面几句设置就可以了吗 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

        GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
       GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2| GPIO_Pin_3|GPIO_Pin_4;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
                GPIO_Init(GPIOB, &GPIO_InitStructure);


wudianjun2001 发表于 2018-4-27 09:24:08

PB3,PB4用的话把JTAG功能禁止,启用SWD就可以了,
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

PB2的是启动的时候注意下不能为高电平

toofree 发表于 2018-4-27 09:40:41

楼上说的很好了。我来补充一下下。
你用的固件库,那么请参考样例程序,“STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\GPIO\JTAG_Remap”


在样例中是把SWD给禁了,自然JTAG也就用不成了。


从你只想用PB2、PB3、PB4来看,SWD可以开着,也就是说,只要禁JTAG,开SWD就可以了。设置方式如楼上,GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

具体GPIO_Remap_SWJ_JTAGDisable和GPIO_Remap_SWJ_Disable的意义,请参考文件“stm32f10x_gpio.h”中相关定义。




wenyangzeng 发表于 2018-4-27 09:44:02

本帖最后由 wenyangzeng 于 2018-4-27 09:49 编辑

应该加上拉。代码都有了,楼主为何不敢亲手运行一下呢?
页: [1]
查看完整版本: STM32 PB2 PB3和PB4作为普通I/0浮空输入引脚设置有什么要求