GPIO输出控制PB0-LEB_B

     通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。

GPIO输出初始化顺序
1、确定GPIO是输入、通用输出、复用功能还是模拟输入。( 模式寄存器: MODER )
2、如果输出还要确定是推挽输出还是开漏输出(输出类型寄存器: OTYPER )
3、配置输出的速度(输出速度寄存器: OSPEEDR )
4、输出的时候内部的上/下拉电阻要不要开启(.上拉/下拉寄存器: PUPDR )
5、具体要输出的内容(置位复位寄存器: BSRR和数据输出寄存器: ODR )
 

1.配置端口模式寄存器确定使用模式

 每两位控制一个IO,例当MODER0设置为0,0,既为输入状态,我们想控制PB0输出高低电平,则MODER0设置为0,1,输出模式

 2,确定是推挽输出还是开漏输出(输出类型寄存器: OTYPER )

 什么叫推挽输出?


1、可以输出高低电平,用于连接数字器件,高电平由VDD决定,低电平由VSS决定。
2、推挽结构指两个三极管受两路互补的信号控制,总是在一个导通的时候另外- 个
截止,优点开关效率效率高,电流大,驱动能力强。
3、输出高电平时,电流输出到负载,叫灌电流,可以理解成推,输出低电平时,负
载电流流向芯片,叫拉电流,即挽。

什么叫开漏输出?


1、只能输出低电平,不能输出高电平。
2、如果要输出高电平,则需要外接上拉。
3、开漏输出具有"线与”功能,一个为低,全部为低,多用于I2C和SMBUS总线。

3、配置输出的速度(输出速度寄存器: OSPEEDR )

与模式寄存器类似由两位控制一个IO,我们默认设置低速即可,既OSPEEDR0置为0,0 

4、(.上拉/下拉寄存器: PUPDR )

上拉下拉不配置即可。

5、具体要输出的内容(置位复位寄存器: BSRR和数据输出寄存器: ODR )

 

NPN IO输出高电平,三极管导通,低断开

PNP IO输出低电平,三极管导通,高断开

 PB0控制灯LED4,当PB0输出低电平时LED4点亮,PB0输出高电平时LED4熄灭。

 

 

使用寄存器控制PB0代码实现

int main(void)
{
	 RCC->IOPENR  |=1<<1;//打开GPIOB的使能
         GPIOB->MODER |=1<<0;//配置01输出模式(PB0的)
	 GPIOB->MODER &=~(1<<1);//配置01输出模式
	 GPIOB->OTYPER &=~(1<<0);//配置输出类型 推挽输出(PB0的)
	 GPIOB->OSPEEDR |=1<<0;//配置输出速度(PB0的)
	 GPIOB->OSPEEDR |=1<<1;//配置输出速度(PB0的)
  while (1)
  {
     GPIOB->BRR=1<<0;//控制PB0输出低电平
  }
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值