STM32/STM8技术william hill官网
直播中

张波

7年用户 1381经验值
私信 关注
[问答]

为什么STM32F4-Discovery GPIO始终为高?

我正在使用STM32F4-Discovery板做一些工作,我试图从GPIO引脚中获得一些简单的用法。然而,我有一个奇怪的问题,我不知道如何解决。
我使用IAR Embedded Workbench作为我的IDE,出于某种原因,我似乎能够启用的唯一GPIO引脚是B-Bus上的那些。如果我在任何其他总线上启用引脚并将引脚设置为高电平和低电平,我连接的电压表不会注册任何东西。
此外,威廉希尔官方网站 板上有几个引脚似乎卡在高电压下,这对我来说似乎很奇怪。在我启用它们之前,有些引脚输出~3V,或者将它们设置为高电平。这些针脚坏了吗?或者有没有办法将它们设置得低?试图启用GPIO引脚并将其设置为低电平对我来说没有用,所以我不确定这里要怎么做

回帖(4)

刘涛

2018-9-14 15:31:56
请提供一个MCVE和一个你测试过的针脚的具体列表,发现卡住了低/高。
举报

李玲

2018-9-14 15:35:39
确保正确配置引脚
  1. {
  2.     RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
  3.     GPIO_InitTypeDef GPIO_InitStructure;
  4.     GPIO_InitStructure.GPIO_Pin =   GPIO_Pin_0 |
  5.                             GPIO_Pin_1 |
  6.                             GPIO_Pin_2 |
  7.                             GPIO_Pin_3 |
  8.                             GPIO_Pin_4 |
  9.                             GPIO_Pin_5 |
  10.                             GPIO_Pin_6 |
  11.                             GPIO_Pin_7;
  12.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  13.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  14.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
  15.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  16.     GPIO_Init(GPIOB,&GPIO_InitStructure);
  17. }

然后写入端口。您也可以将引脚烧坏或ESD引脚,尝试几个不同的端口引脚。
STM32F通常在唤醒/复位时将其端口配置为高阻抗,使用高阻抗测量仪可以测量任何内容,而无需将引脚设置为确定的输出。如果你把一个外部20k下拉到地并仍然测量3.3V,那么我相信你的仪表。
举报

张波

2018-9-14 15:36:41
是的,我把20k下拉到了Pins,在那里我测量了〜3V而没有启用它们,我仍在测量我的仪表上的3V。
举报

张娟

2018-9-14 15:37:04
如果你使用OTYPE_PP(推拉),那么你不需要配置PUPD_DOWN
举报

更多回帖

发帖
×
20
完善资料,
赚取积分