GPIO输出控制PB0,程序设计步骤

GPIO输出控制PB0有两种方式,一种是通过寄存器控制,另一种是通过HAL库函数直接控制。

方法一:通过HAL库函数控制PB0

步骤如下:

首先通过STM32CubeMx软件设置;

  1. 首先点击图中所示创建新的项目

  1. 第二步找到自己的STM32单片机,其中有两种方式,一种直接在查询框中直接输入查询,另一种是在下面筛选框中筛选出。

选好后直接点击右侧选项进入

  1. 第三步找到需要点亮等的引脚PB0后设置为GPIO_Output,然后点击Sysem view,再点击GPIO选项,左侧弹出窗口,将GPIO output level 设置为high; 即将GPIO_PIN_0 口初始电平设置为高电平。

  1. 然后根据图片所示步骤点击项目信息(Project Manage)然后写入project name 选择路径(注意:路径尽量设置为全英文路径,否则后面创建文件会有警告,很麻烦),然后将Toolchain / IDE 设置为MDK-ARM ,然后点击 Code Generator 选项将Generated files中第一个选项勾上。最后点击右上角创建项目,然后点击openproject等待打开keil5软件。

  1. 接下来是比较重要的几步也是关键步骤,在keil5中用HAL库函数进行控制GPIO的输出。

涉及到三个函数

  1. 最后写HAL函数实现将PB0灯点亮。(程序如下)

方法二:通过寄存器控制PB0

在方法一的基础上不使用HAL_Init(); SystemClock_Config(); MX_GPIO_Init();这三个函数,直接使用寄存器控制PB0

用到几个寄存器如下:

使能时钟寄存器(RCC_IOPENR)

GPIO端口模式寄存器(GPIOx_MODER)(x=A......D,F)

GPIO端口输出类型寄存器(GPIOx_OTYPER)(x=A......D,F)

GPIO端口输出速度寄存器(GPIOx_OSPEER)(x=A......D,F)

GPIO端口输出数据寄存器(GPIOx_ODR)(x=A......D,F)

GPIO 端口置位 / 复位寄存器 (GPIOx_BSRR) 和 (GPIOx_BRR) (x = A..D,F)

步骤如下:

  1. 首先使用使能时钟寄存器设置时钟,

  1. 然后设置GPIOB的输出模式寄存器,设置为01通用输出模式(将第0位设置为0 第1位设置为1)。

  1. 在设置GPIOB的输出类型寄存器,将第0位设置为1,开漏输出。

  1. 然后设置GPIOB的输出速度寄存器,将第0位设置为0 第1位设置为1,设置为01中速模式

  1. 最后在while循环中设置GPIO的输出数据寄存器,将第0位设置位1,将GPIO_PIN_0设置为高电平。

程序如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值