STM32笔记(2)——GPIO

  GPIO(General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式

其结构如下:

GPIO口挂在APB2总线上,在GPIO中又通过控制寄存器的后16位选取0~15号端口

 8种不同的模式: 

若开关接VDD则为上拉输入,接VSS则为下拉输入,都不接则为浮空输入 

 模拟输入(GPIO_Mode_AIN)
 浮空输入(GPIO_Mode_IN_FLOATING )
 上拉输入(GPIO_Mode_IPU)
 下拉输入(GPIO_Mode_IPD )
 开漏输出( GPIO_Mode_Out_OD )
 推挽输出( GPIO_Mode_Out_PP )
 复用开漏输出 ( GPIO_Mode_AF_OD )
 复用推挽输出( GPIO_Mode_AF_PP 

 模拟输入方式就类似于ADC,通过读取引脚输入转换成为数字信号

 若两个mos管都导通则为推挽输出,只有p-mos管导通为开漏输出

注意:在推挽输出模式下,高低电平都有驱动能力,开漏输出模式下,只有低电平有驱动能力

复用可以理解为 GPIO口被用作第二功能时的配置情况

配置常用函数:

总线时钟控制函数:

RCC_AHBPeriphClockCmd                        对AHB总线时钟进行命令

RCC_APB2PeriphClockCmd                      对APB2总线时钟进行命令

RCC_APB1PeriphClockCmd                      对APB1总线时钟进行命令

 GPIO配置函数:

GPIO_Init                对GPIO口初始化

GPIO_SetBits                对GPIO口中的,一个端口给高电平

GPIO_ResetBits                对GPIO口中的,一个端口给低电平

GPIO_WriteBit                对GPIO口中的,一个端口给写高低电平  

 GPIO_Write                对一整个GPIO口进写高低电平

GPIO_ReadInputDataBit                对GPIO口中的,一个端口读取输入(读取输入寄存器)

GPIO_ReadInputData                对一整个GPIO口读取输入(读取输入寄存器)

GPIO_ReadOutputDataBit                对GPIO口中的,一个端口读取输出(读取输出寄存器)

GPIO_ReadOutputData                 对一整个GPIO口读取输出(读取输出寄存器)

常用配置端口模式: 

(1) 浮空输入_IN_FLOATING ——浮空输入,可以做 KEY识别,RX1
(2)带上拉输入_IPU——IO内部上拉电阻输入
(3)带下拉输入_IPD—— IO内部下拉电阻输入
(4) 模拟输入_AIN ——应用 ADC模拟输入,或者 低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)
(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)

以配置led灯为例 :

void Led_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStruct);
	GPIO_SetBits(GPIOA,GPIO_Pin_1|);
}

  • 21
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用内容,STM32C8T6是一款通用增强型的48脚单片机,具有64K闪存和LQFP封装。它适用于工业级温度范围-40~85度。下面是一些关于STM32C8T6学习的笔记: 1. 学习资料:可以从ST官方网站下载STM32C8T6的数据手册和参考手册,这些手册包含了该单片机的详细信息和使用方法。 2. 开发环境:为了开始学习STM32C8T6,你需要安装相应的开发环境。ST官方提供了一款免费的集成开发环境(IDE)——STM32CubeIDE,它可以帮助你进行代码编写、调试和下载。 3. 编程语言:STM32C8T6可以使用多种编程语言进行开发,包括C语言和汇编语言。C语言是最常用的编程语言,它可以通过STM32CubeIDE进行编写和调试。 4. 引脚配置:在使用STM32C8T6之前,你需要了解每个引脚的功能和配置。数据手册中有一张引脚功能表,可以帮助你了解每个引脚的用途和配置方法。 5. 时钟配置:STM32C8T6具有多个时钟源和时钟分频器,你需要根据自己的需求配置正确的时钟。时钟配置对于外设的正常工作非常重要。 6. 中断和定时器:STM32C8T6支持中断和定时器功能,这些功能可以帮助你实现各种任务和功能。你可以通过配置中断和定时器来实现外设的响应和定时操作。 7. 外设驱动:STM32C8T6具有丰富的外设,包括GPIO、UART、SPI、I2C等。你可以根据自己的需求选择合适的外设,并学习如何配置和驱动这些外设。 8. 调试和下载:在开发过程中,你可以使用STM32CubeIDE提供的调试功能来调试你的代码。一旦代码调试完成,你可以使用ST-Link或其他下载器将代码下载到STM32C8T6上运行。 希望以上笔记对你学习STM32C8T6有所帮助!如果你有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值