[应用相关] 开漏输出PB15 无法拉低

[复制链接]
784|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 | 显示全部楼层
开漏输出就是不输出电压,低电平时接地,高电平时不接地。
gongche 发表于 2020-5-21 23:22 | 显示全部楼层
另外你这个接口是不是搞了其他电路
bqyj 发表于 2020-5-21 23:26 | 显示全部楼层
除非你能确定这段代码运行时,IO口模式还是复位时的状态.
否则,你可以这样:
RCC->APB2ENR |=(1<<3);
GPIOB->CRH &=~(15<<(4*4));
GPIOB->CRH |=(5<<(4*4));
...
chenho 发表于 2020-5-21 23:30 | 显示全部楼层
楼主理解的不到位
 楼主| houcs 发表于 2020-5-21 23:37 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家
xinpian101 发表于 2020-5-21 23:58 | 显示全部楼层
输出低电平呢
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

粉丝
快速回复 在线客服 返回列表 返回顶部