打印
[应用相关]

开漏输出PB15 无法拉低

[复制链接]
602|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
houcs|  楼主 | 2020-5-21 23:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RCC->APB2ENR |=(1<<3);

GPIOB->CRH |=(5<<(4*4));
GPIOB->CRH |=(5<<(4*6));
GPIOB->CRH |=(5<<(4*7));

GPIOB->ODR &=~(1<<12);
GPIOB->ODR &=~(1<<14);
GPIOB->ODR &=~(1<<15);
stm32f103
5V通过10K电阻上拉。
PB15 始终是高电平 PB12 PB14 可以切换

使用特权

评论回复
沙发
yufe| | 2020-5-21 23:13 | 只看该作者

什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
板凳
houcs|  楼主 | 2020-5-21 23:15 | 只看该作者
我是用固件库搞不定,才用寄存器的,PB15始终高电平5V。

使用特权

评论回复
地板
wangzsa| | 2020-5-21 23:18 | 只看该作者
开漏输出就是不输出电压,低电平时接地,高电平时不接地。

使用特权

评论回复
5
gongche| | 2020-5-21 23:22 | 只看该作者
另外你这个接口是不是搞了其他电路

使用特权

评论回复
6
bqyj| | 2020-5-21 23:26 | 只看该作者
除非你能确定这段代码运行时,IO口模式还是复位时的状态.
否则,你可以这样:
RCC->APB2ENR |=(1<<3);
GPIOB->CRH &=~(15<<(4*4));
GPIOB->CRH |=(5<<(4*4));
...

使用特权

评论回复
7
chenho| | 2020-5-21 23:30 | 只看该作者
楼主理解的不到位

使用特权

评论回复
8
houcs|  楼主 | 2020-5-21 23:37 | 只看该作者

哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
9
xinpian101| | 2020-5-21 23:58 | 只看该作者
输出低电平呢

使用特权

评论回复
10
kcfoo1| | 2020-5-25 14:39 | 只看该作者
本帖最后由 kcfoo1 于 2020-5-25 14:47 编辑

搞不懂为什么要用(1>>12)这样的语句,难道是从iccavr转过来的,另外这个只能1位,你用5<<>>12是几个意思呀?st的头文件里有GPIO_CRL_MODE0_0和GPIO_ODR_ODR0这样的定义,GPIOB->ODR I=GPIO_ODR_ODR0难道不香吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

743

主题

8382

帖子

5

粉丝