IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32CubeMX教程1 --- 点亮一个LED灯 -> 正文阅读

[嵌入式]STM32CubeMX教程1 --- 点亮一个LED灯

STM32CubeMX教程1 — 点亮一个LED灯

前期准备:
①:STM32硬件(我的是STM32F103ZET6)
②:STM32CubeMX Keil5

实验目的

点亮一个LED灯
(ps:我的LED对应GPIO是PE5,带上拉,低电平点亮)

思维导图

在这里插入图片描述

新建工程:

1.在主界面选择File–>New Project 或者直接点击ACCEE TO MCU SELECTOR 或Ctrl+N;

2.在 Part Number中搜索芯片型号,然后双击右下角的STM32F103ZETX在这里插入图片描述

3.进入下面界面;
在这里插入图片描述

4.首先我们设置时钟,点击System core,找到RCC,将高速时钟与低速时钟都设置为外部时钟,如下
在这里插入图片描述
接下来点击Clock Configuration,
在这里插入图片描述
由于我们选择选择外部时钟,因此勾选HSE,通锁相环分频;

5.其次,我们配置Debug,点击Pinout&Configuration,找到System core分页下的SYS,将Debug选择为Serial Wire,如下:
在这里插入图片描述

6.配置我们的GPIO口,在右下角的搜索相应引脚,我的是在PE5
在这里插入图片描述
点击那个黑色闪烁的PE5,点击GPIO_Output
在这里插入图片描述
跳转到System Core分页下的GPIO,
在这里插入图片描述
我们来配置GPIO:
GPIO output level 设置此引脚为高电平还是低电平
GPIO mode 设置此引脚的输出模式 Output Open Drain 开漏输出,Output Push Pull 推挽输出
GPIO Pull-up/Pull-down 设置上拉下拉
Maximum output speed 设置速度
User Label 用户标签

7.生成我们的工程,点击Project Manager
在这里插入图片描述
依次进行设置,(注:路径中不能包含中文!路径中不能包含中文!路径中不能包含中文!)
接着点击Code Generator
在这里插入图片描述
Cope all used libraries into project folder 软件包中所有.c和.h都复制到工程中
优点:可以在此工程中直接添加外设,不需要再用CubeMX配置
缺点:编译速度慢
Cope only the necessary library files 只复制需要的.c和.h
优点:编译速度较快
缺点:如果要增加外设,需要继续用CubeMX配置
Add necessary library library files as … 不复制.c和.h文件,直接从软件包储存位置中引用
优点:编译速度快
缺点:不能更改文件位置
Generate peripheral initialzation… 每个外设生成单独的.c和.h文件
Backup previously generted… 重新生成代码是保留以前编译产生的文件
Keep User Code when… 重新生成代码时保留用户的代码
Delete previoly generted…重新生成代码是输出以前编译产生的文件

最后点击GENERATE CODE在这里插入图片描述

Keil5编程

8.打开文件
在这里插入图片描述
Core 中的两个文件中包括.c和.h文件(用户如果要写其他的.c和.h文件可以保存在这里面)
LED.ioc 我们可以通过这打开CubeMX继续进行配置

点击MDK-ARM,点开LED.uvprojx,编译一下,无错误警告
在gpio.c中可以找到MX_GPIO_Init(),这是对我们的GPIO引脚初始化,如需修改,我们可以在这里修改
在这里插入图片描述

在main.h中可以找到我们的标签
在这里插入图片描述
接下来我们来学习一下HAL库中常见的输出函数
ps:一点小技巧,我们想要找关于gpio的函数,我们可以在gpio.c分页下找到stm32f1xx_hal_gpio.h
向下拉就会找到

在这里插入图片描述
首先:我们学习
*void HAL_GPIO_WritePin(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
给引脚写入高电平还是低电平

在这里插入图片描述
通过这个可以找到函数的原型(或者直接按F12也可以到定义处)
*第一个参数,第二个参数:确定引脚号,第三个参数:高低电平
void HAL_GPIO_TogglePin(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin);
电平翻转函数

在main.c中我们的代码

HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET); //给PE5引脚写入低电平我的是低电平点亮
	//HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,0); //这样写也可以,但会报warning
	//HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET); //使用我们的用户标签来写

ps:用户代码尽量写在 / USER CODE BEGIN 2 / / USER CODE END 2 / 之间,否则,如果我们使用CubeMX增加外设时我们以前写的代码将会消失

编译烧录复位,就点亮我们的LED灯了(哈哈,很开心对吧)

同理,我们使用void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);这个函数也可以实现点灯。
点灯例程

写在最后,以后不定时会更新

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:44:59  更:2022-03-15 22:46:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:38:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码