dircls0088 发表于 2022-9-29 17:20

请教一个关于GPIO的问题。谢谢大家。

        GPIO_InitTypeDefGPIO_InitStructure;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10
                | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14 | GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
        GPIO_Init(GPIOB, &GPIO_InitStructure);        //8个GPIOB pin
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_Init(GPIOE, &GPIO_InitStructure);   //1个GPIOE pin


大家好,看一个板子的代码时,发现板子只配置了9个输入,而实际上板子上有24个输入,为什么没有配置的也能正常使用!
麻烦指导一下。

LcwSwust 发表于 2022-9-29 17:24

GPIO默认浮空输入

dircls0088 发表于 2022-9-30 08:16

LcwSwust 发表于 2022-9-29 17:24
GPIO默认浮空输入

默认是输入,那输出是必须要配置的哟?

LcwSwust 发表于 2022-9-30 08:24

dircls0088 发表于 2022-9-30 08:16
默认是输入,那输出是必须要配置的哟?

是的啊,其实所谓“配置”也就是对某个寄存器赋值,你若不给它赋值,它也是有初始值的,不存在“没有配置”。


dircls0088 发表于 2022-9-30 08:26

LcwSwust 发表于 2022-9-30 08:24
是的啊,其实所谓“配置”也就是对某个寄存器赋值,你若不给它赋值,它也是有初始值的,不存在“没有配置 ...

谢谢老板指点!

coody 发表于 2022-9-30 10:21

输入是默认的.你试试只配置9个输出,看能不能输出24个.

ASHYLAI 发表于 2022-10-2 14:09

dircls0088 发表于 2022-9-30 08:26
谢谢老板指点!

确切地说呢,没有有意地去设置IO,那么它就处于一种由芯片自定义,一般是由芯片设计所确定的状态。对于STM32芯片,可以理解为输入,由于读寄存器无论任何时候都是连上IO的,此时可以从读寄存器获取io电平。
而且,看样子在配置为输出等功能时,读寄存器一样可以获得IO电平值。

前功尽弃 发表于 2022-10-5 11:31

请教一个关于GPIO的问题。谢谢大家。

芯片上电会有一个默认状态https://bbs.21ic.com/static/image/smiley/comcom/4.gif
页: [1]
查看完整版本: 请教一个关于GPIO的问题。谢谢大家。