嵌入式——基于HAL库和中断的LED流水灯

目录

一、前期准备—开发环境的搭建

1.安装JDK和MDK

2.安装STM32CubeMX

二.HAL库函数开发—用GPIO完成3只LED红绿灯的周期闪烁

1.使用HAL库创建工程文件

2.使用Keil编写相关项目代码

3.流水灯运行结果展示

4.使用软件仿真逻辑分析仪功能观察管脚时序波形

三.HAL库函数开发—采用中断模式控制流水灯闪烁

1.通过STM32CubeMx创建项目

(1)创建新工程

(2)配置“RCC”和“SYS”

(3)配置“GPIO”端口输出

(4)配置"Clock Configuration"

(4)配置中断“EXIT”

(5)项目生成

2.通过KEil进行代码配置

(1)实验任务

(2)中断机制的基本原理

3.中断控制结果展示

4.使用软件仿真逻辑分析仪功能观察管脚时序波形

​编辑

四.用Proteus8.15仿真任务1,2中的系统电路,观察运行效果

1、proteus8.15简介

(1)原理介绍

(2)增加的功能

2.仿真运行实验一LED_3_light

(1)新建工程

(2)元件配置及“.hex”文件添加

(3)仿真效果展示

(4)用Proteus8.15中进行示波器仿真

3.仿真运行实验一LED_EXTI

(1)新建工程

(2)元件配置及“.hex”文件添加

(3)仿真效果展示

(4)用Proteus8.15中进行示波器仿真

五.Github

1.github的注册以及git安装详解

(1)注册github账户

(2)安装git客户端

2.Git 客户端和 GitHub 的绑定

(1)获取SSH keys

(2)Githyb绑定ssh密钥

3.使用Git命令将代码提交至GitHub

(1)克隆仓库

(2)上传所有项目文件至Github远程仓库

六.总结


一、前期准备—开发环境的搭建

1.安装JDK和MDK

1.1下载JDK,具体过程如下:

(1)JAVA官网地址:https://www.java.com/zh_CN/download/windows-64bit.jsp

(2)下载步骤:进入官网以后,首先点击下载,打开 jre-8u431-windows-x64.exe 安装包,勾选更改目标文件夹,点击安装;

选择自己要存放的路径,点击 下一步,

等待安装,安装完成以后,点击关闭,即可完成JDK环境的配置。

1.2下载MDK

(1)MDK 软件下载地址:https://www.keil.com/download/product
         器件支持包下载地址:https://www.keil.com/dd2/pack

(2)下载完毕后,会出现一下三个文件:

  首先安装MDK5,双击MDK514.exe文件,点击next进行下一步,勾选同意的选项框,点击next,

分别点击Core以及Pack后的Browse,选择mdk软件和硬件支持包的安装位置,建议安在D盘,再点击next,之后需要填一些一些信息,可以随便填,不影响对后续的使用,填写完毕后点击next。

下面就可以等待软件安装,若弹出是否信任MDK软件相关的信息点击同意,否则会影响使用,

下载完成后,在界面中将"Show Release Notes"选项框取消,然后点击Finish,完成安装。

之后会弹出硬件支持包安装界面,暂时不用理会,直接点击OK按钮,然后点击右上角的X按钮关闭

接着进入“keil”软件,选择File -> Licenes Management ,在Single-User界面中选择CID进行复制,

接着打开注册机"keygen.exe”,将复制的CID号粘贴到注册机的CID位置,Target选项选择ARM,然后点击Generate按钮生成LIC,将复制的LIC号复制到MDK的LIC位置,点击后面的Add LIC按钮,上面出现注册信息即破解成功。

关闭注册机和MDK,点击下载的硬件支持包安装,默认安装的MDK只有C51,由于我使用的是STM32F103C8T6,双击Keil.STM32F1xx_DFP.2.2.0pack,点击next进行安装即可,固件安装完毕。

至此,使用CubeMX所需要的JDK和MDK环境成功配置!

2.安装STM32CubeMX

(1)下载地址:https://www.st.com/en/development-tools/stm32cubemx.html

(2)安装步骤:

打开 SetupSTM32CubeMX-6.0.0.exe 文件(注:如果没有配置JDK,此步会报错!),然后点击next,接着勾选同意协议,点击 Next,界面如下:

勾选第一个,点击 Next,然后选择安装路径,

继续在弹出的界面中选择Next,然后程序自动安装,安装完成后,点击 Next。

最后点击Done就可以完成安装,至此CubeMx的安装结束。

二.HAL库函数开发—用GPIO完成3只LED红绿灯的周期闪烁

1.使用HAL库创建工程文件

(1)打开下载好的CubeMx,点击左上角的File文件选择“New Project”,创建工程,界面如下,

在弹出的界面中,下拉列表输入芯片名称“STM32F103C8T6”,右下角选中后,点击“Start Project”

(2)然后配置“.sys”,下拉debug模式 ,选中"Serial Wire"Timebase Source选择“SysTick”,

接着配置“.RCC”,HSE选中"Crystal/Ceramic Resonator"项,LSE选择Disable,界面如下。

(3)配置GPIO,先点击右侧芯片示意图,选择需要的端口,点击设置GPIO_OUTPUT,我选择的引脚是PA0,PB15,PC14,同时把GPIO output level置为高电平,引脚配置如下图所示:

(4)设置Clock Configuration,操作如下所示:

(5)设置Project Manager,这里特别注意,代码的生成路径不要有中文,否则后面可能会出错(至少我这里是不行的),文件名和自己的工程最好是有联系的(以免后续不知道工程内容)

点击“Code Generator”,勾选图示内容,再点击右上角"GENERATE CODE",生成文件。

但是这里会有一个问题,如果没有提前建立邮箱,需要注册邮箱信息,才能成功生成工程内容。

注册的时候,邮箱最好填自己的,可以是QQ邮箱,其他的可以随意填写,

完成以后,就可以成功生成所需内容了!

2.使用Keil编写相关项目代码

(1)实验任务;掌握HAL库函数开发方法,安装 stm32CubeMX,配合Keil,使用HAL库方式完成下列任务:用GPIO端口完成3只LED红绿灯的周期闪烁。使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形,更方便动态跟踪调试和定位代码故障点。请用此功能观察3个GPIO端口流水灯的输出波形,并分析时序状态正确与否,高低电平转换周期(LED闪烁周期)实际为多少。

(2)设计思路:通过逐个控制三个不同的GPIO引脚,实现了对三个LED灯的顺序控制。每个LED灯都会单独被点亮和熄灭,并且每个灯的点亮和熄灭之间有一个固定的延时,从而形成了一个简单的周期性闪烁模式。基于HAL库的STM32开发流程图如图所示:

(3)点开CubeMx中的项目,找到主函数main.c,在while(1)中写入代码:

  while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE END WHILE */
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);  // PA0亮
	HAL_Delay(1000); // 延时1s
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);  // PA0灭
		
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_RESET);  // PB15亮
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值