STM32CubeMX GPIO的使用

一、GPIO口配置
1、GPIO的主要配置有输入和输出
① 作为普通GPIO输入:
根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。
② 作为普通GPIO输出:
根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。
③ 作为普通模拟输入:
配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。
④ 作为内置外设的输入:
根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。
⑤ 作为内置外设的输出:
根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。

以流水彩灯为例子对GPIO进行初始化

使用STM32CubeMX会自动生成初始化代码

GPIO寄存器详解
参见《STM32F10X数据手册》

GPIO基本设置
#define GPIO_MODE_INPUT ((uint32_t)0x00000000) /*!< GPIO输入模式 */
#define GPIO_MODE_OUTPUT_PP ((uint32_t)0x00000001) /*!< GPIO推挽输出 */
#define GPIO_MODE_OUTPUT_OD ((uint32_t)0x00000011) /*!< GPIO开漏输出 */
#define GPIO_MODE_AF_PP ((uint32_t)0x00000002) /*!< GPIO推挽复用 */
#define GPIO_MODE_AF_OD ((uint32_t)0x00000012) /*!< GPIO开漏复用 */
#define GPIO_MODE_AF_INPUT GPIO_MODE_INPUT /*!< */

#define GPIO_MODE_ANALOG ((uint32_t)0x00000003) /*!< 模拟输入 */

GPIO输入输出速度选择:
#define GPIO_SPEED_FREQ_LOW (GPIO_CRL_MODE0_1) /*!< Low speed */
#define GPIO_SPEED_FREQ_MEDIUM (GPIO_CRL_MODE0_0) /*!< Medium speed */
#define GPIO_SPEED_FREQ_HIGH (GPIO_CRL_MODE0) /*!< High speed */
GPIO输入输出状态选择:
typedef enum
{
GPIO_PIN_RESET = 0, //低电平
GPIO_PIN_SET //高电平
}GPIO_PinState;
GPIO初始化:
typedef struct
{
uint32_t Pin;

uint32_t Mode;

uint32_t Pull;

uint32_t Speed;
}GPIO_InitTypeDef;

三、主要库函数有:

void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);

posted on 2017-06-18 23:01 我是呆呆 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/nanxiaofeng/p/7045798.html

STM32CubeMX GPIO的使用相关推荐

  1. STM32CubeMX——GPIO配置

    STM32CubeMX--GPIO配置 说明 GPIO-output 配置部分 新建工程 配置系统时钟 配置GPIO引脚(以PB15为例) 配置时钟树 项目文件设置 代码部分 函数说明 应用举例 GP ...

  2. STM32CubeMX GPIO中断编程

    文章目录 一. 环境 二. 使用STM32CubeMX 1. 安装固件库 2. 工程设置 3. 添加代码 三. 最终效果 题目:用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端 ...

  3. stm32编码器正反转计数程序_第六章:STM32CubeMx 定时器编码器模式基本使用方法...

    前言: 增量式编码器在实际应用中还是很常见.stm32的定时器带的也有编码器模式.所用的编码器是有ABZ三相,其中ab相是用来计数,z相输出零点信号.AB相根据旋转的方向不同,输出的波形如下图所示: ...

  4. stm32cubeide外部中断_【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)

    前言 上一节我们讲解了STM32CubeMX的基本使用和工程的配置,那么这一节我们正式来学习CubeMX配置STM32的各个外设功能了 今天我们会详细的带你学习STM32CubeMX配置外部中断,并且 ...

  5. 一文弄通STM32F103基于simulink自动代码生成CAN/USART/GPIO/TIM(stm32cubemx+stm32target+matlab2018b)

    一文弄通STM32F103基于simulink自动代码生成CAN/USART/GPIO/TIM(stm32cubemx+stm32target+matlab2018b) 写在前面 1.stm32cub ...

  6. STM32CubeMX | 33-使用GPIO读取温度传感器数据(DS18B20)

    本篇详细的记录了如何使用STM32CubeMX配置 STM32103RET6 的硬件GPIO外设读取温度传感器DS18B20的数据. 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准 ...

  7. STM32CUBEMX开发GD32F303(4)----GPIO输出模式,速率测试、开漏和输出说明

    STM32CUBEMX开发GD32F303.4----GPIO输出模式,速率测试.开漏和输出说明 概述 样品申请 视频教学 csdn课程 硬件准备 开发板管脚配置 不同速率对应的波形 LOW速率 Me ...

  8. STM32CubeMX学习教程之一:GPIO输出之跑马灯

    完整源码下载: https://github.com/simonliu009/STM32CubeMX-GPIO-Control 软件版本: STM32CubeMX V4.25.0  System Wo ...

  9. STM32CubeMX学习教程之二:GPIO输入之外部中断

    完整源码下载: https://github.com/simonliu009/STM32CubeMX-GPIO-EXIT 本篇主要讲述GPIO外部中断输入检测,实际物理输入方式是按键,但是实际上更适合 ...

最新文章

  1. AI模型走下高科技神坛、走进大规模量产、深入渗透产业界丨百度研究院2020十大预测...
  2. win7 php mysql扩展名_win7下MySQL 5.1.73安装过程(图解)并在php.ini中启用相关扩展。...
  3. php 字符串打散为数组,用逗号分隔出数组
  4. python预处理标准化_tensorflow预处理:数据标准化的几种方法
  5. iphone 低版本渲染不出来内容的一种解决办法
  6. SCPPO(二十六):测算过程中问题的解决总结
  7. Android图片爬虫,看妹纸神器项目源码,ListView单张图片查看
  8. java 包装类缺点_Java 自动拆箱和自动装箱学习笔记
  9. 企业大数据营销需要什么思路
  10. 【GAMES101】三维旋转矩阵中绕三个轴旋转的矩阵公式
  11. qq一键登录 android,QQ帐号通Android全新登场:一键快捷登录腾讯应用
  12. eeepc linux 软件管理,Linux_为EeePC增添活力 EeePC安装Ubuntu预览,虽然Eee PC运行基于Xandros的Linux - phpStudy...
  13. P1359 租用游艇 (线性dp
  14. 中国有机盐行业市场供需与战略研究报告
  15. css效果之吸顶效果
  16. 面经手册 · 第2篇《数据结构,HashCode为什么使用31作为乘数?》
  17. vb获取html中的inout,input conversion error-SWAT模型-Fortran语法讨论-专业Fortran论坛 -
  18. finecmsV5.0.8 \finecms\dayrui\controllers\Api.php getshell
  19. 监听android.intent.action.PHONE_STATE状态重复执行问题
  20. [转] php5.3 PHP5.4 PHP5.5 新特性/使用PHP5.5要注意的

热门文章

  1. 公众号小tips(持续更新)
  2. 安装Whl文件时提示 ....whl is not a valid wheel filename
  3. [转]Python中下划线---完全解读
  4. 学习笔记_vnpy实战培训day01
  5. foreach循环怎么获取全部返回值_PHP跳出循环的方法语句有哪些
  6. 写给数据小白:怎么让你的分析结论超出预期,不再是废纸一堆
  7. mysql维护计划 自动备份_MysQL windows 下自动备份,同时加入计划任务脚本
  8. Linux的三种权限含义,Linux chmod命令及权限含义
  9. mysql存储过程 大小写_MySQL数据记录大小写敏感问题【转】
  10. 年度调薪一般涨多少_宁愿辞职也不敢提加薪,心理专家告诉你加薪提多少才合适...