初学STM32,使用HAL库点灯全过程
本文用于记录学习过程,如果有写错的地方,还请各位看官指出来
使用的软件:keil5,STM32cubeMX,网易有道翻译
老样子,这次要点亮的灯还是PE^5;
然后打开STM32cubeMX
选着第一个,MCU是单片机的意思
然后在左上角搜索自己板子的型号,通常点击下面那个
双击进入到另一个界面后
在这块芯片周围找到PE5,如果找不到的话芯片右下角可以直接搜索
找到LED后左键它会出现上图1,咱们要让灯亮起来,而不是灯要我们亮吧awa
所以咱们选着GPIO_Output输出模式嘛
选着输出模式了后就会出现上图2,感觉这样有些不太好认吧,那咱们就右键一下PE5就会出现上图3,然后咱们在点击第一个Enter User Label给它重新改个名就叫...e叫LED1好了。
好了,咱们引脚找好了该配置一下它了吧
看到左边的列表了吗,选着第一个System Croe,然后再选着GPIO
诶,这时我们就能看到你刚刚选着了的引脚
(因为只选了个PE5,所以这就显示一项,同理,你在芯片处选了各个这就显示几项)
咱们轻点它一下
这里就会出现各个需要我们配置的选项了
来,咱解释一下哈
GPIO output level:
是你默认的输出电平,比如说你选low那就是低电平输出,拿本题来说,哪怕你程序没有写输出低电平,只要一接到电,那咱灯也亮了,所以通常咱们这里会选成High,保证默认情况下电平不变。
GPIO mode:
这就是输出模式的意思了,什么推挽啊开漏啥的,这里就不多介绍了,不清楚的小明可以取网上看看。
GPIO Pull-up/Pull-down:
这里就是配置电阻的地方了,原理我也讲不太清楚,不过咱作为初学者会用就行了是吧awa
当GPIO处于output模式,一般选择no pull,引脚能够正确地输出目标值;
当GPIO处于input模式,需要根据默认的输入值来确定配置模式,如果默认输入的值为1时,最好配置为pull up,否则,最好配置为pull down;
当按照上面的规则进行配置之后,则能够避免外部电路没有上拉、下拉电阻时出现的不确定情况。
注意:开漏如果不连接外部的上拉电阻,则只能输出低电平
Maximum output speed:
这里是翻转速度的意思,通常情况下咱们选着low就行了
User Label
这里就是显示咱们给它改的名称,假如你不给它改名称的话这行就会显示空白
好了,GPIO端口配置完了咱们改配置RCC时钟了吧
这里便是配置外部时钟源的地方
BYPASS Clock Source:旁路时钟源
Crystal/Ceramic Resonator:晶体/陶瓷振荡器
选择前者:系统时钟由外部提供
选择后者:系统时钟由外部晶振和芯片内部电路协作提供
通常来讲,有源晶振选前者,无源晶振选后者(一般咱初学者的板子的话选陶瓷振荡器)
好了,时钟配置好了咱们就开始配置最后一样了
通常咱们选Serial Wire
好了,现在GPIO RCC SYS咱们都配置好了,开始配置时钟树了
在HCLK 的位置咱们直接把72打上去然后按一下回车键,其他的系统会帮我们配置好
至于为什么写72呢?
举个例子吧
好比一台大哥大手机和一台智能手机让你选用什么,那肯定选智能手机啊awa
有更好的不用那不久浪费资源嘛
咱们开始配置最后一步了嗷
这一夜咱们只要选择文件名,文件地址,IDE就行了
对了,IDE通常选择V5嗷
然后
咱将上图1改成上图2的样子就行了
上面那行是将其改成生成有用的上的文件,下面那个勾上呢是生成.c.h文件
好了,到这里所有的都配置完了
咱们进入到代码的编写
点右上角的这个图标,选着中间的选项,然后系统就会自动打开keil软件了
找到主函数,Application/User这里放的就是我们本次点灯用得到的.c文件了
当然了,如果你想看看对应的.h文件里的声明和解释,咱们就可以右键被它调用的头文件
如上图,选着Go to Headerfile “xxx.h”就行了
或者是你想取看看相应的函数是干啥的也都可以按照上面的操作点进去看一看。
咱们要写的程序放在main函数里
这次我们写一个闪烁灯吧
那就找到while,把代码写里面
那里面要怎么写呢???先看看这个
HAL_GPIO_ReadPin 用于读取引脚电平状态
HAL_GPIO_WritePin 用于设置引脚电平状态
HAL_GPIO_TogglePin 用于翻转引脚电平状态
这里呢咱们是输出嘛,所以用不到第一条读取引脚电平状态
那剩下的两条呢
咱们先看看最后一条翻转引脚电平嗷
翻转引脚是什么意思呢?
比如说啊,咱灯默认输出的是低电平,诶,那灯是不是亮了啊,那翻转一下,低电平就变成了高电平,诶,灯就又灭了
不过,翻转会有把电路烧毁的风险,所以通常情况下不太支持用翻转
那就用设置引脚电平状态了
诶你把这行打上去,系统自然会提醒你改敲什么
如果看不懂它提醒的什么意思
那咱就右键一下改函数进去瞅瞅啊
这里提示一下嗷
假如你点那个文件或者函数想进去结果进不去,可以先编译一下嗷
进去后,它上面的就是解释了,照了它的格式写就完事
好了,下面就是完整的闪烁灯代码了,延时函数HAL库里有直接拿来用就行了
初学STM32,使用HAL库点灯全过程相关推荐
- 【嵌入式10】stm32CubeMX+Keil使用HAL库点灯,并使用逻辑分析仪观察周期
stm32CubeMX+Keil使用HAL库点灯,并使用逻辑分析仪观察周期 一.题目要求 二.STM32CubeMX简介 1.利用CubeMX新建工程点亮LED灯 1)前期准备 2)新建工程 2.界面 ...
- stm32CubeMX+MDK5使用HAL库点灯
目录 前言 一.STM32CubeMX安装教程 1.1JRE的安装 1.2安装STM32CubeMX 1.3安装HAL库 二.使用STM32CubeMX进行点灯 2.1新建工程 2.2界面讲解 2 ...
- 【STM32】HAL库 STM32CubeMX教程十五---FMC-SDRAM(二)
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 上一讲我们说了CubeMX配置SDRAM的一些基本配置,还有FMC跟SDRAM的讲解,这一讲我们 ...
- 【STM32】HAL库 STM32CubeMX教程十五---FMC-SDRAM(一)
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 本文 1首先讲解什么是FMC及SDRAM,W9825G6KH芯片原理,2基于CubeMx创建工程 ...
- 【STM32】HAL库 STM32CubeMX教程十四---SPI
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在我们的HAL库中,对硬件SPI函数做了很好的集成,使得之前SPI几百行代码,在HAL库中,只需 ...
- 【STM32】HAL库 STM32CubeMX教程十一---DMA (串口DMA发送接收)
前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1.芯片: STM32F407ZET6/ STM32F103ZET6 ...
- 【STM32】HAL库 STM32CubeMX教程十---DAC
前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1.芯片: STM32F407ZET6/ STM32F103ZET6 ...
- 【STM32】HAL库 STM32CubeMX教程九---ADC
前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1.芯片: STM32F407ZET6/ STM32F103ZET6 ...
- stm32 ADC hal库实现
stm32 ADC hal库实现 1.ADC的作用 (1)简介: ADC(Analog-to-Digital Converter),即模拟-数字转换器,可以将连续变化的模拟信号转换为离散的数字信号,进 ...
最新文章
- C# http 性能优化500毫秒到 60 毫秒
- Hibernate 配置C3P0 连接池
- 反模式? 只有模式不彻底吧
- (读取,录入)语音处理
- 51单片机c语言应用开发三位一体实战精讲 pdf 119网盘,51单片机C语言应用开发三位一体实战精讲.pdf...
- java克鲁斯卡尔算法_Java语言基于无向有权图实现克鲁斯卡尔算法代码示例
- leetcode 74. 搜索二维矩阵(二分)
- Koa框架——coderhub实战
- nodejs 简单安装环境
- LINUX安装文件DEB的postrm运行报错,无法卸载怎么办
- MySQL中授权(grant)和撤销授权(revoke)
- Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
- 架构方案(9) 如何构建一套高可用的 APP 消息推送平台
- python蒙特卡洛模拟return_蒙特卡罗方法入门
- 谢烟客---------Linux之权限
- 各大日语学习网站整理
- early fusion VS later fusion
- JAVA与MAVEN打包
- 学习HTML的知识点总结
- 接口自动化测试框架--接口基础
热门文章
- SwiftUI 语音合成与语言识别教程之 03 实现录音文件转文字(含完整项目源码)SFSpeechURLRecognitionRequest
- BFS - Dungeon Master
- 微服务架构下路由、多活、灰度、限流的探索与挑战
- 计算机考试题 实操,计算机考试实操题.doc
- Python 中 int 用法详解
- 新开课day21+day22总结
- Typora导出word文档自动生成目录
- Error in nextTick: “TypeError: Cannot read property ‘xxx‘ of undefined“
- 【xml 报错】xml编译错误
- 彻底解决:fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached