STM32——GPIO配置

STM32 的 IO 口相比 51 而言要复杂得多,所以使用起来也困难很多。首先 STM32 的 IO 口
可以由软件配置成如下 8 种模式:
1、输入浮空
2、输入上拉
3、输入下拉
4、模拟输入
5、开漏输出
6、推挽输出
7、推挽式复用功能
8、开漏复用功能

IO的使用分为:普通IO功能使用 and IO复用
普通io,看输入还是输出
复用,直接设置为复用即可

输入:
分为输入浮空,输入上拉,输入下拉以及模拟输入
输出就两种:
推挽式(Push-Pull)–> 可输出强高/低电平
开漏式(Open-Drain)–>输出强低电平,但是高电平得靠外部上拉,不过可以输出5V的高电平(上拉到5V)

疑问:就是在什么情况下使用什么模式,比如说在使用按键时,一般情况就是使用某某模式,还是说要根据实际情况使用不同的模式呢?如果是后者,那么该如何分析使用哪种模式呢?

解答:
分2点判断:
1,是用普通IO功能还是复用功能?
如果是普通IO,那么就要看输入还是输出,这个看第二点。
如果是复用功能,就设置为复用功能即可,没多选。

2,是用输入功能,还是输出功能。
如果是普通IO,看是输入还是输出。输出又分为推挽(可输出强高/低电平)和开漏输出(输出强低电平,但是高电平得靠外部上拉,不过可以输出5V的高电平(上拉到5V))。
如果是输入,有分为带上下拉电阻的输入,或者浮空输入。前者一般作为普通输入方式,可以给你剩下一个外部电阻。后者一般用于ADC转换之类的。

浮空,顾名思义就是悬浮在空中,上面用绳子一拉就上去,下面用绳子一拉就沉下去了。
上拉,下拉的设置主要还是看你外接的驱动电路的具体情况配置的。
开漏,就等于输出口接了个NPN三极管,并且只接了e,b. c极是开路的,你可以直接接一个电阻到3.3V,也可以接一个电阻到5v,这样在输出1的时候,就有5V的电压,也可以输出3.3V的电压了,而不接电阻上拉,这个输出高是不能实现的。
推挽,就是有推有拉,任何时候IO口的电平都是确定的,不需要外接上拉或者下拉电阻

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于STM32GPIO输出实验,点亮三色LED,您可以按照以下步骤进行操作: 1. 首先,您需要在STM32的开发环境中创建一个新的工程。 2. 在工程中,您需要包含相应的头文件,如"stm32f10x.h"。 3. 接下来,配置相应的引脚为输出模式。假设红色LED连接到GPIOA的Pin0引脚,绿色LED连接到GPIOA的Pin1引脚,蓝色LED连接到GPIOA的Pin2引脚,您可以使用以下代码进行配置: ``` GPIO_InitTypeDef GPIO_InitStructure; // 使能GPIOA的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 配置红色LED引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置绿色LED引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置蓝色LED引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); ``` 4. 现在,您可以使用相应的寄存器来控制LED的点亮和熄灭。例如,要点亮红色LED,可以使用以下代码: ``` GPIO_SetBits(GPIOA, GPIO_Pin_0); // 将Pin0引脚置高,点亮红色LED ``` 要熄灭红色LED,可以使用以下代码: ``` GPIO_ResetBits(GPIOA, GPIO_Pin_0); // 将Pin0引脚置低,熄灭红色LED ``` 同样的方法,您可以控制绿色和蓝色LED的点亮和熄灭。 这就是点亮三色LED的基本步骤。希望对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值