OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5488|回复: 11

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

[复制链接]

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
发表于 2016-5-30 20:56:08 | 显示全部楼层 |阅读模式
15金钱
我将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口输出高低电平?(我是添加在红外遥控的例程中的)

最佳答案

查看完整内容[请看2#楼]

已经解决,我换了其他IO口,但是还是搞不明白我用的IO口从原理图上来看是没有影响的,为什么不能用。另外,总觉得好多时候任务完成的稀里糊涂的,正确地答案又不知道如何获取,所解决的问题不知道如何解释。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-5-30 20:56:09 | 显示全部楼层
已经解决,我换了其他IO口,但是还是搞不明白我用的IO口从原理图上来看是没有影响的,为什么不能用。另外,总觉得好多时候任务完成的稀里糊涂的,正确地答案又不知道如何获取,所解决的问题不知道如何解释。
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-5-31 08:45:32 | 显示全部楼层
1.检查配置;2.描述含糊其辞,不知道引脚电压最终啥状态
回复

使用道具 举报

1

主题

119

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1980
金钱
1980
注册时间
2013-10-7
在线时间
326 小时
发表于 2016-5-31 09:02:53 | 显示全部楼层
1.引脚要配置为推挽输出,获得高输出驱动能力。2.GPIO_ResetBits()是把端口置为0电平,那输出就是毫伏了。你使用GPIO_SetBits()函数,测量端口电压是否有3.3V的供电电压。3.IO端口的状态快速变化建议使用位带操作的方法,提高端口的响应速度。
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-5-31 21:40:01 | 显示全部楼层
浪花雷雨 发表于 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
我的连接实物图:
怎么破??
QQ图片20160531213529.jpg
回复

使用道具 举报

1

主题

119

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1980
金钱
1980
注册时间
2013-10-7
在线时间
326 小时
发表于 2016-6-1 09:51:24 | 显示全部楼层
忆初仁 发表于 2016-5-31 21:40
现在的情况是
端口定义:
#define TE   PCout(8)

端口配置给成推挽上拉输出。
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-6-1 10:51:02 | 显示全部楼层
浪花雷雨 发表于 2016-6-1 09:51
端口配置给成推挽上拉输出。

我试了,还是一样的结果
回复

使用道具 举报

1

主题

119

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1980
金钱
1980
注册时间
2013-10-7
在线时间
326 小时
发表于 2016-6-1 11:45:10 | 显示全部楼层
忆初仁 发表于 2016-6-1 10:51
我试了,还是一样的结果

还是配置问题,你要检查配置参数。
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-6-1 12:44:32 | 显示全部楼层
浪花雷雨 发表于 2016-6-1 11:45
还是配置问题,你要检查配置参数。

还是不明白,那为什么其中两个IO口电压有变化呢?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2016-6-1 20:51:26 | 显示全部楼层
GPIO_OType_OD的开漏输出啊
GPIO_OType_PP才是推挽
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-6-1 21:55:41 | 显示全部楼层
正点原子 发表于 2016-6-1 20:51
GPIO_OType_OD的开漏输出啊
GPIO_OType_PP才是推挽

呃呃,当时试了一下开漏输出,复制的时候还没改过来
回复

使用道具 举报

1

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
金钱
279
注册时间
2019-8-29
在线时间
31 小时
发表于 2019-9-9 08:09:40 | 显示全部楼层
好好拜读
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 10:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表