STM32点亮电子世界的那盏灯

Posted 正道物联网大讲堂官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32点亮电子世界的那盏灯相关的知识,希望对你有一定的参考价值。

实验目的

1,熟悉Keil MDK 工具软件的使用方式。
2,能够通过STM32CubeMX创建一个工程
3,掌握 Keil MDK 软件的基本设计流程和设计步骤,能够使用工具进行设计、编程、下载。
4,通过本实验掌握的 GPIO 口的使用方法。
5,掌握如何利用 STM32L071芯片的 I/O 口控制 LED。

实验环境

1,开物派 Zero 开发平台
2,ST-Link 仿真器
3,Keil MDK 5.23 集成开发软件
4,STM32CUBEMX 图形开发软件
5,PC 机 XP、 Window7/8/10 (32/64bit)

实验内容

利用STM32CubeMX搭建一个跑马灯工程。跑马灯的本质是控制MCU的引脚高低电平,作为经典的测试例程,可以让大家对 STM32FL071芯片有个简单的整体认识 。

实验步骤

1 跑马灯硬件设计

1.1 观察开发板LED原理图

由图可知,开发板上提供了2个LED给我们做实验。这2个LED分别可以由PA6、PA7管脚来控制,而LED2、LED3的阳极通过一个电阻后接了3.3V,所以我们只需将对应的管脚拉低便能点亮对应的LED。

2、编写代码

2.1 在桌面创建一个名为【LED】的文件夹,来存放工程

2.2 在CubeMX上设置对应管脚

1,双击桌面【STM32CubeMX】图标打开开始工程。点击【ACCESS TO MCU SELECTOR】选择开发板芯片,搜索输入【L071RB】双击选择右边【STM32L071RBTx】进入配置界面

2,点击左边【System Core】进入下拉窗口,点击【GPIO】进入管脚的设置界面。进入详细界面后,可以看到我们配置过为Output的管脚有PA6、PA7两个。双击【PA6】进入该管脚的详细配置界面。

3,进入到对应管脚的详细设置页面后,可以看到一些选项,来配置这个GPIO管脚,我们需要将两个管脚都配置一遍。

4,点击【SYS】进入系统的设置界面。进入系统设置界面后,将【Debug Senial Wire】选项勾上,此选项是为了打开芯片的SWD接口,否则下次就无法烧写代码了。

5,点击上方的【Project Manager】进工程管理界面。

6,完成代码生成后,点击【Open Project】按钮,打开项目工程。

2.3 编辑工程

点击【Open Project】进入到MDK5工程,在main.c中添加代码到下图位置。

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET);   

HAL_Delay(500);

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET);

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET);

HAL_Delay(500);

点击【保存】按钮保存文档。

3 编译代码

写好代码之后,点击左上角【Build】编译,底端显示[0 Error,0 Warning]即表示程序无错误无警告成功编译。如果有错误则有可能上一步的代码没有写好,请重新检查再编译。

4 下载程序

1,将开发板上电,然后将烧写器连插到开发板上并且插入到电脑上。

2,打开工程配置,选择 【Debug】,勾选【Use】,选择仿真工具为 【ST-Link Debugger】,点击【Setting】


3,在弹出的窗口中,查看IDCODE一栏中的有显示一串编码则表明设备已经被识别。

4,关掉弹出的窗口后,点击下载按钮,将代码下载到开发板上

5,代码下载后,这时按下复位键,可以发现开发板上的LED以交替点亮的方式循环闪烁!这样我们一个MDK工程就算完成了。

实验参考代码

关注正道物联网大讲堂的公众号

在公众号里发消息

下载|STM32 LED参考代码

建议复制粘贴过去不会打错字哟。

玩转物联网、添加下面微信好友,加入社区带你飞!!!

关注下面微信公众号二维码,干货多多,第一时间推送!

以上是关于STM32点亮电子世界的那盏灯的主要内容,如果未能解决你的问题,请参考以下文章

STM32学习笔记——点亮一个LED

在一个 STM32 点亮 LED 的程序中,部分代码如下?

stm32点亮led灯用到的模块

STM32CubeMX(01)基于HAL库点亮LED

STM32Cube_03使用GPIO点亮一个LED

点亮STM32F103C8T6上的LED