如何使探索者STM32F407开发板的GPIO口外接其他模块输出高电平

2019-07-20 21:53发布

我将STMF407板子的四个GPIO口(用的都是GPIOC)用杜邦线外接其他模块,比如想让这四个引脚分别输出0、0、0、1,即有一个引脚为高电平,其他三个为低电平,我用的GPIO_ResetBits()与GPIO_SetBits()函数,如:GPIO_ResetBits(GPIOC,GPIO_Pin_2|GPIO_Pin_5|GPIO_Pin_1|GPIO_Pin_0),但是用电压表测过之后发现,引脚电压没有变化或者变化了几百毫伏。各位大侠能指导我如何操作GPIO口输出高低电平?(我是添加在红外遥控的例程中的)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
忆初仁
1楼-- · 2019-07-21 13:21
浪花雷雨 发表于 2016-5-31 09:02
1.引脚要配置为推挽输出,获得高输出驱动能力。2.GPIO_ResetBits()是把端口置为0电平,那输出就是毫伏了。 ...

现在的情况是
端口定义:
#define TE   PCout(8)
#define D1   PCout(4)
#define D2   PCout(5)
#define D3   PCout(9)
#define D4   PCout(10)
IO口配置:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_10|GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;//推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//下拉
GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化
main函数中使用:
case 104:str="1";
GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_9|GPIO_Pin_8);
GPIO_SetBits(GPIOC,GPIO_Pin_10);break;
TE、D3、D4电压一直都是3.3V左右,无变化,D1、D2设置为高电平时电压为1.2V左右,设置为低电平时电压为0V
我的连接实物图:
怎么破??
忆初仁
2楼-- · 2019-07-21 01:19
已经解决,我换了其他IO口,但是还是搞不明白我用的IO口从原理图上来看是没有影响的,为什么不能用。另外,总觉得好多时候任务完成的稀里糊涂的,正确地答案又不知道如何获取,所解决的问题不知道如何解释。
龙之谷
3楼-- · 2019-07-21 03:59
 精彩回答 2  元偷偷看……
浪花雷雨
4楼-- · 2019-07-21 09:17
1.引脚要配置为推挽输出,获得高输出驱动能力。2.GPIO_ResetBits()是把端口置为0电平,那输出就是毫伏了。你使用GPIO_SetBits()函数,测量端口电压是否有3.3V的供电电压。3.IO端口的状态快速变化建议使用位带操作的方法,提高端口的响应速度。
浪花雷雨
5楼-- · 2019-07-21 15:57
 精彩回答 2  元偷偷看……
忆初仁
6楼-- · 2019-07-21 19:48
浪花雷雨 发表于 2016-6-1 09:51
端口配置给成推挽上拉输出。

我试了,还是一样的结果

一周热门 更多>