单片机平台编写 GPIO 口程序,以 STM32F103 为例,有三种模式:库函数、HAL库、寄存器。
使用库函数的方式操控 GPIO 方式如下:
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能 PB 端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
//PB5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度
GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化 GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 输出高
}
上述代码就是使用库函数来初始化 STM32 的一个 IO 为输出功能,可以看出上述初始化代码中重点要做的事情有一下几个:
①、使能指定 GPIO 的时钟。
②、初始化 GPIO,比如输出功能、上拉、速度等等。
③、STM32 有的 IO 可以作为其它外设引脚,也就是 IO 复用,如果要将 IO 作为其它外设引脚使用的话就需要设置 IO 的复用功能。
④、最后设置 GPIO 输出高电平或者低电平。
STM32 的 GPIO 初始化就是以上四步,使用库函数操作 GPIO 还是很简单的。但是我们知道 STM32F1 系列是有库函数的,但是 STM32F7 系列就没有库函数了,ST 公司没有出,STM32F7 只有 HAL 库和寄存器两种操作方式。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6045文章
44665浏览量
640566 -
STM32
+关注
关注
2275文章
10935浏览量
358712 -
函数
+关注
关注
3文章
4351浏览量
63211 -
GPIO
+关注
关注
16文章
1218浏览量
52661
发布评论请先 登录
相关推荐
STC15单片机的GPIO口驱动LED资料合集
本文档的主要内容详细介绍的是STC15单片机的GPIO口驱动LED资料合集包括了 :HEX文件,寄存器版程序和工程文件,库函数版程序和工程文
发表于 10-10 08:00
•16次下载

【51/STM32】详解单片机GPIO口输入输出的各种模式
通用型输入输出端口,简称GPIO口,是单片机与其他外围设备和电路进行信息交换和控制的桥梁。本文从复习模电中所学的场效应管开始,逐步引出开漏输出与推挽输出的概念及阐述其原理,并结合点亮一
发表于 11-19 09:21
•105次下载

stm32单片机基于hal库对对GPIO的操作
32单片机对GPIO的操作和51单片机对io口的操作是一样的,常用的有三个,输出,io口至高至低,输入,检查测io
发表于 11-26 20:06
•1次下载

51单片机GPIO结构框图与工作原理
不论学习什么单片机,最简单的外设莫过于IO 口的高低电平控制,本教程将向大家介绍如何在创建好的工程模板上通过操作51 单片机的GPIO 口输
发表于 07-15 15:29
•7056次阅读

从Linux平台来研究GPIO软件框架
方法,让它可以像单片机一样简单的操作 IO 口,这得益于各路 Linux 大神对系统底层的封装。 在 Linux 中有 pinctrl 和 gpio 子系统,它们提供了 API 接口给你使用,让你方便

评论