STM32

32学习

GPIO的工作模式:

四中输入模式:

输入浮空

输入上拉

输入下拉

模拟输入

四种输出模式:

开漏输出(上拉或下拉)

开漏复用(上拉或下拉)  

推挽输出(上拉或下拉)

推挽复用(上拉或下拉)

四种最大速度:

2MHz

25MHz

50MHz

100MHz

GPIOFT模式:表示5V容忍,兼容五伏电压。

开漏输出:

MCU位操作设置GPIO0,则GPIO输出为0MCU位操作设置GPIO1,则GPIO输出由上下拉决定。开漏只可以输出低电平,输出高电平又外部电阻拉高。

推挽输出:

MCU位操作设置GPIO0,则GPIO输出为0;MCU位操作设置GPIO1,则GPIO输出为1。推挽可以输出强高低电平。

GPIO口的寄存器配置:

模式寄存器(GPIOx_MORER):32个位(0~31)控制16GPIO  

00:输入(复位状态)

01:通用输出

10:复位功能模式

11 :模拟模式

输出类型寄存器(GPIOx_OTYPER):共有32个位,低16位控制16GPIO

0:推挽输出(复位状态)

1:开漏输出

输出速度寄存器(GPIOx_OSPEEDR):32个位(0~31)控制16GPIO

四种最大速度:

002MHz

0125MHz

1050MHz

11100MHz

上拉下拉寄存器(GPIOx_PUPDR):32个位(0~31)控制16GPIO

00:无上拉或下拉

01:上拉

10:下拉

11:保留

输入数据寄存器(GPIOx_IDR):共有32个位,低16位控制16GPIO

输出数据寄存器(GPIOx_ODR):共有32个位,低16位控制16GPIO

0GPIO0

1GPIO1

值为/复位寄存器(GPIOx_BSRR):32个位

16位:

0:不对相应GPIO进行操作(保持)

1:对应GPIO置为1

16位:

0:不对相应GPIO进行操作(保持)

1:对应GPIO置为0

配置锁存寄存器(GPIOx_LCKR

两个复用功能寄存器(GPIOx_AFRL&GPIOx_AFRH

注释:所有的GPIO口都可以作为中断的输入。

 

库函数和寄存器的区别:

本质是一样的,我们可以从库函数里面直接操作寄存器,但是不能再寄存器模板调用库函数。

在库函数中,把寄存器封装成函数形式。可以通过库函数控制寄存器。

闪烁灯代码编写:

步骤:

一、使能GPIO口时钟。调用库函数RCC_AHB1PeriphClockmd();

二、初始化GPIO口模式,调用GPIO_Init();

三、操作GPIO口,输出高低电平。GPIO_SetBits(); GPIO_ResetBits();

注释:代码写完需要添加回车行

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值