STM32 (GPIO能不能同时输入和输出)

比如我这样设置;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed=GPIO_Spe... 比如我这样设置;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ;
GPIO_Init(GPIOB, &GPIO_InitStructure);

那我输出的时候是不是可以直接用这样用:
GPIO_SetBits(GPIOF, GPIO_Pin_6); //高电平
GPIO_ResetBits(GPIOF, GPIO_Pin_6); //低电平
然后采集输入的时候直接用:
Read=GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5);

可不可以这样同时使用一个脚?
打错了;
那我输出的时候是不是可以直接用这样用:
GPIO_SetBits(GPIOB, GPIO_Pin_5); //高电平
GPIO_ResetBits(GPIOB, GPIO_Pin_5); //低电平
然后采集输入的时候直接用:
Read=GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5);

可不可以这样同时使用一个脚?
展开
 我来答
shhfxb
推荐于2017-11-24 · TA获得超过683个赞
知道小有建树答主
回答量:215
采纳率:66%
帮助的人:101万
展开全部
GPIO在输出方式时是同时往输入数据寄存器采样的;而在输入方式下 输出缓冲器被禁止,不会有输出。 所以要把第二条的输入配置删除才行。
另外:输出配置为开漏模式时,对输入数据寄存器的读访问可得到端口状态 ;输出配置为推挽式模式时,对输入数据寄存器的读访问得到最后一次写入输出寄存器的值(在外部电路正常情况下,假如端口短路应该是不会一致的)。
追问
加入我要实现这样的功能需要怎么弄,把代码帮我修改下。谢谢。分数不够还可以加。
GPIO_SetBits(GPIOB, GPIO_Pin_5); //输出高电平
Delay1(3);//延迟
GPIO_SetBits(GPIOB, GPIO_Pin_4); //时钟信号高
Delay1(3);
GPIO_ResetBits(GPIOB, GPIO_Pin_4); //时钟信号低
Delay1(3);
Read=GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5);//采集输入的信号
追答
你这好像是用于模拟I2C接口吧?
一般是在DATA通道输出结束后切换成输入模式才能采集输入的信号,否则两种输出模式下(推挽或开漏)都可能会有冲突。其实也很简单,在上面第3个Delay1(3)后把PB5设置回输入模式,再做适当延时,延时结束后再读应该已经稳定了。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
百度网友725d4a3
2018-12-07 · 超过16用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:23.6万
展开全部
设定输出模式为开漏,外接上拉电阻,这时IO口就成了准双向IO口,想输入的时候输出置1,IDR就会等于输入置,这个用法标准51一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凌盆夜跳12
推荐于2016-06-07 · TA获得超过7.4万个赞
知道大有可为答主
回答量:3844
采纳率:56%
帮助的人:665万
展开全部
GPIO在输出方式时是同时往输入数据寄存器采样的;而在输入方式下 输出缓冲器被禁止,不会有输出。 所以要把第二条的输入配置删除才行。
另外:输出配置为开漏模式时,对输入数据寄存器的读访问可得到端口状态 ;输出配置为推挽式模式时,对输入数据寄存器的读访问得到最后一次写入输出寄存器的值(在外部电路正常情况下,假如端口短路应该是不会一致的)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式