STM32CubeMX——GPIO配置
STM32CubeMX——GPIO配置
- 说明
- GPIO-output
- 配置部分
- 新建工程
- 配置系统时钟
- 配置GPIO引脚(以PB15为例)
- 配置时钟树
- 项目文件设置
- 代码部分
- 函数说明
- 应用举例
- GPIO-input
- 配置部分
- 新建工程
- 配置系统时钟
- 配置GPIO引脚(以PB15为例)
- 配置时钟树
- 项目文件设置
- 代码部分
- 函数说明
- 应用举例
说明
本文将以STM32F103C8T6单片机为例讲解GPIO引脚的配置
GPIO-output
配置部分
新建工程
- 搜索单片机型号(STM32F103C8T6)
- 选择单片机
- 创建工程
配置系统时钟
- 选择高速时钟(外部陶瓷晶体振荡器)
- 选择低速时钟(外部陶瓷晶体振荡器)
配置GPIO引脚(以PB15为例)
- 选择PB15引脚配置成output模式
- 配置引脚功能
- 切换到GPIO选项面板
- 选择对应的GPIO引脚(PB15)
- 对框内属性进行配置
- 配置GPIO输出级别:Low(低级别)
- GPIO的输出模式:Output Push Pull(推挽输出)
- GPIO是否上下拉:No pull-up and no pull-down(既不上拉也不下拉)
- GPIO输出速度:Low(低速)
- 用户标签:
配置时钟树
- 选择时钟设置界面
- 将HCLK配置到72MHz,系统自动配置各个时钟
项目文件设置
- 选择文件设置选项卡
- 设置项目名称
- 设置存储位置
- 选择所用IDE
- 选择为每个功能生成一个.c和.h文件
- 生成代码
代码部分
函数说明
// 与GPIO-output有关代码
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);//设置GPIO引脚电平
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);//翻转GPIO引脚电平(原状态为高电平,则变为低电平;原状态为低电平,则变为高电平)
应用举例
/* USER CODE BEGIN 3 *///设置GPIO电平实例
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET);//设置PB15引脚为高电平
HAL_Delay(500);//延时500ms
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//设置PB15引脚为低电平
HAL_Delay(500);//延时500ms//翻转GPIO电平实例
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_15);//翻转GPIO引脚电平
HAL_Delay(500);//延时500ms/* USER CODE END 3 */
GPIO-input
配置部分
新建工程
- 搜索单片机型号(STM32F103C8T6)
- 选择单片机
- 创建工程
配置系统时钟
- 选择高速时钟(外部陶瓷晶体振荡器)
- 选择低速时钟(外部陶瓷晶体振荡器)
配置GPIO引脚(以PB15为例)
- 选择PB15引脚配置成input模式
- 配置引脚功能
- 切换到GPIO选项面板
- 选择对应的GPIO引脚(PB15)
- 对框内属性进行配置
- GPIO模式:输入模式
- GPIO是否上下拉:Pull-up(上拉)
- 用户标签:
配置时钟树
- 选择时钟设置界面
- 将HCLK配置到72MHz,系统自动配置各个时钟
项目文件设置
- 选择文件设置选项卡
- 设置项目名称
- 设置存储位置
- 选择所用IDE
- 选择为每个功能生成一个.c和.h文件
- 生成代码
代码部分
函数说明
// 与GPIO-input有关函数
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);//读取GPIO引脚状态
应用举例
/* USER CODE BEGIN 3 */
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_15)==GPIO_PIN_RESET){//判断PB15引脚是否为低电平HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET);//设置PB14引脚为高电平
}else{HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET);//设置PB14引脚为低电平
}
/* USER CODE END 3 */
STM32CubeMX——GPIO配置相关推荐
- STM32CubeMX GPIO的使用
STM32CubeMX GPIO的使用 一.GPIO口配置 1.GPIO的主要配置有输入和输出 ① 作为普通GPIO输入: 根据需要配置该引脚为浮空输入.带弱上拉输入或带弱下拉输入,同时不要使能该引脚 ...
- STM32CubeMX——环境配置以及实例编译烧写
一.STM32CubeMX环境配置 1.安装STM32CubeMX 官网下载:https://www.st.com/content/st_com/en/products/development-too ...
- DSP 28335中GPIO配置
F28335有三种32位的I/O口,依次PORTA(GPIO0-GPIO31), PORTB(GPIO32-GPIO63), PORTC(GPIO64-GPIO87),这些口都可以配置为普通的数字 ...
- MTK 驱动开发(2)---GPIO 配置
1.GPIO 配置 拿到一个手机项目,GPIO 总是和MTK 提供的默认的代码的GPIO 的使用不一样,需要根据原理图进行修改GPIO配置,配置GPIO 需要使用MTK 提供的工具DrvGen.exe ...
- GPIO 配置之ODR, BSRR, BRR 详解
STM32 GPIO 配置之ODR, BSRR, BRR 详解 用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态. ODR寄存器可读可写:既能 ...
- STM32F1模拟iic的GPIO配置(小总结)
最近学习,发现需要总结一下模拟iic的gpio配置,相信你懂得,但是最好还是需要理解清楚. 1.初始化GPIO void IIC_Init(void) { GPIO_InitTypeDef GPIO_ ...
- 国民技术GPIO配置推挽输出模式
GPIO配置是在开发单片机常用的.下面就来介绍如何将GPIO配置推挽输出模式. typedef enum {GPIO_Mode_Input = 0x00000000, /*!< Input Fl ...
- 【SemiDrive源码分析】【驱动BringUp】13 - GPIO 配置方法
[SemiDrive源码分析][驱动BringUp]13 - GPIO 配置方法 一.Android Linux 下 GPIO 配置方法(AP1 Domain - 6 * A55) 1.1 Kerne ...
- STM32CubeMX工程配置——以STM32F103C8T6为例
之前的博客<STM32CubeMX开发环境搭建及示例>已经搭建好了开发环境,但是在开发的过程中总是忘记STM32CubeMX是如何配置工程的,所以这里随手记录一下,本篇博客会随着自己的学习 ...
最新文章
- 进程状态控制-进程的撤销
- chHANDLE_DLGMSG(windows核心编程)讲解
- MySQL批量SQL插入性能优化
- 经常误提交.DS_Store文件怎么办?Git全局排除配置了解一下!
- android studio无线真机调试
- 深入浅出python机器学习_9.1.5_通过数据预处理提高模型的准确率_MinMaxScaler
- 【好程序员笔记分享】——UIView与CALayer详解
- matlab guidata两个,Matlab
- 生成随机测试数据的文件的程序
- 单目摄像头光学图像测距_摄像头与毫米波雷达(Radar)融合解析
- java二分法查找_java 中二分法查找的应用实例
- java托盘图标变白在linux,升级Ubuntu后系统托盘图标消失
- HDOJ 1698 Just a Hook(线段树成段更新)
- 【java笔记】类的抽象
- 【数据库】NoSQL数据库简介
- FeedingBottle 3.2另一个无线破解GUI
- 计算机管理员账户权限不足,用户权限不足,请使用管理员权限。怎么办啊?求高手帮忙!谢了。...
- c语言 公式编辑器,AxMath(公式计算编辑器)
- 2021-03-24
- 定时任务实现(中午12点执行,每1分钟执行一次)
热门文章
- MT6771_MT6762_ISP_Tuning_Introduction
- 卫星天线驻波比,天线增益,天线极化方式,天线轴比解读
- 学校计算机和网络安全情况,学校网络安全自查报告
- J2ME游戏开发(从零开始)
- 机器学习基础篇——最大后验概率
- Messager说明
- AutoLisp从入门到放弃(二十一)
- 北大操作系统陈向群第八章知识点
- LAMP架构1-LVS+Keepalived实现高可用的ip负载均衡
- GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)