STM32标准库GPIO操作

STM32任何外围设备的使用都分为两部分:初始化和使用。体现在代码上就是:(1)有一个初始化函数(2)main函数中的使用

1.初始化GPIO

初始化GPIO函数代码:

void GPIOB_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}

初始化一个IO口分为三步:使能时钟、赋值结构体参数、使用上一步设置的结构体参数初始化IO口。

下面一步一步的来解析:

(1)使能时钟。

对应上述代码中函数体内第2句。

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB , ENABLE);

这里我们初始化的是B口的时钟。

(2)赋值结构体参数。

对应上述代码中函数体的第1句与第3、4、5句。

    GPIO_InitTypeDef GPIO_InitStructure;

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

首先定义一个结构体变量,然后把该结构体变量的一些参数设置一下。

这里我们需要用PB10引脚,于是设置GPIO_Pin是Pin10。

需要推挽输出于是设置GPIO_Mode为GPIO_Mode_AF_PP。

需要PB10在高速状态下运行于是设置GPIO_Speed为50MHz。

经过以上的设置我们就把结构体变量GPIO_InitStructure“填充”完成了。

(3)使用上一步设置的结构体参数初始化IO口。

经过上一步我们设置好了我们需要的端口的一些参数,这一步我们就要把这些参数设置到GPIOB上。

GPIO_Init(GPIOB, &GPIO_InitStructure);

该函数有两个参数,第一个是我们要选定的IO口(这里我们选的是PB口系列。其他的有PA、PC、PD、PE等,每个系列都有16个引脚分别是Pin0-Pin15)

第二个参数就是我们上一步中的结构体变量,该变量定义了某个IO口系列的某个具体引脚(这里我们用的是Pin15),定义了引脚模式以及引脚工作频率。

GPIO_Init()函数的作用就是把我们赋值好的结构体变量对应到GPIO口上。

2.main函数中的使用

GPIO_SetBits(GPIOB , GPIO_Pin_15);//设置为高电平
GPIO_ReSetBits(GPIOB , GPIO_Pin_15);//设置为低电平

STM32标准库GPIO操作的更多相关文章

  1. 单片机stm32零基础入门之--初识STM32 标准库

    CMSIS 标准及库层次关系 因为基于Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难.为了解决不同的芯片厂商生产的Co ...

  2. STM32 标准库

    CMSIS 标准及库层次关系 因为基于Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难.为了解决不同的芯片厂商生产的Co ...

  3. 初识STM32标准库

    1.CMSIS 标准及库层次关系 CMSIS 标准中最主要的为 CMSIS 核心层,它包括了: STM32标准库可以从官网获得: 在使用库开发时,我们需要把 libraries 目录下的库函数文件添加 ...

  4. 【转】C++ 标准库值操作迭代器的常见函数

    迭代器是C++标准库中的重要组件,特别是在容器内部,没有迭代器,容器也就无所谓存在了. 例如:vector容器简而言之就是3个迭代器 start finish 以及end_of_storage vec ...

  5. python2.7.13标准库文件目录操作与文件操作

    标准库的中文参考文档: http://python.usyiyi.cn/translate/python_278/library/index.html 官方标准库文档:https://docs.pyt ...

  6. STM32 标准库V3.5启动文件startup_stm32f10xxx.s分析

    layout: post tags: [STM32] comments: true 文章目录 layout: post tags: [STM32] comments: true 前言 分析startu ...

  7. STM32 标准库3.5修改默认外部8M晶振为16M晶振

    ST官方标准库V3.5默认的外部晶振频率为8M,实际使用中外部晶振需要修改为16M: 经过实验,修改有效,具体的patch如下: 修改 HSE_VALUE 值 diff --git "a/L ...

  8. golang中的标准库IO操作

    参考链接 输入输出的底层原理 终端其实是一个文件,相关实例如下: os.Stdin:标准输入的文件实例,类型为*File os.Stdout:标准输出的文件实例,类型为*File os.Stderr: ...

  9. C 标准库 中 操作 字符串 的 代码

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

随机推荐

  1. 窗口函数解决数据岛问题(mysql暂无窗口函数,可以通过用户变量解决窗口函数问题)

    数据岛问题: 有表: create table dataisland (id int)  insert into  dataisland values(1),(2),(3),(7),(11),(12) ...

  2. java.lang.SecurityException: Can't make field constructor accessible

    原本使用GsonConvertor,在Android版本5.1.1上没有任何问题,结果切换到版本6.0.1上,出现以下所示问题: java.lang.IllegalArgumentException: ...

  3. JSP Debug日志

    2006年末一篇blog,那时候好生涩啊: 先谈两个关于reponse.sendRedirect()函数的问题 :      1.在Servlet的处理流或JSP的页面流中,sendRedirect( ...

  4. ScalaPB(2): 在scala中用gRPC实现微服务

    gRPC是google开源提供的一个RPC软件框架,它的特点是极大简化了传统RPC的开发流程和代码量,使用户可以免除许多陷阱并聚焦于实际应用逻辑中.作为一种google的最新RPC解决方案,gRPC具 ...

  5. JS跨域:2.解决方案之-设置回调参数

    一 服务器端代码 package com.cn; import java.util.List; import javax.servlet.http.HttpServletRequest; import ...

  6. What is RandomCharacter.getRandomLowerCaseLetter() ?????

    今天在看书顺便打打书上的代码时,看到这么一个方法的调用RandomCharacter.getRandomLowerCaseLetter()! 年轻的我看到这一大串单词时还以为是JDK自带类里面方法Or ...

  7. 2014金山笔试_编写一个数组类 MyVector

    //编写一个数组类 MyVector,数组内容可以动态扩充,实现构造,析构,赋值操作符重载,插入,删除,获取元素个数,获取数组容量(不可以使用STL等的容器类,不能使用 //不连续的存储空间) #in ...

  8. 为什么「margin:auto」可以让块级元素水平居中?

    知乎链接:http://www.zhihu.com/question/21644198 关于BFC的解释:W3CFans http://www.w3cfuns.com/thread-5595727-1 ...

  9. 配置teredo,启用ipv6,xx-net

    最近使用XX-NET科学上网 ,提示要配置使用IPv6.根据github的上win10配置ipv6方式(https://github.com/XX-net/XX-Net/wiki/IPv6-Win10 ...

  10. Spring Cloud Sleuth服务链路追踪(zipkin)(转)

    这篇文章主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件. 一.简介 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案, ...