本学习采用“STM32CubeMX + MDK-ARM”的开发工具组,内部利用ST主推的HAL(Hardware Abstraction Layer,硬件抽象层)库,对新大陆的M3主控模块(内置STM32F103VET6芯片)实现开发学习。总的开发流程如下:

1、利用STM32CubeMX对MCU进行配置。

2、生成基于MDK-ARM集成开发环境的初始化代码。

3、添加功能逻辑,完成应用开发,编译并运行。


一、任务描述

客户需要制作流水灯作为装饰,微控制器使用STM32F103VET6,根据需要完成1个LED的测试(以LED2为例)。


二、硬件结构

从M3主控模块的电路图可以看到,LED1~LED8对应的引脚分别是PE7~PE0,即对应关系如下:

PE0——LED8

PE1——LED7

PE2——LED6

PE3——LED5

PE4——LED4

PE5——LED3

PE6——LED2

PE7——LED1

同时,这些LED灯均为低电平有效,即低电平时能够将灯点亮。

另外还有一个LED9对应的引脚为PB8,另外具备了呼吸灯功能,这个后面再说。


三、实施步骤

1、新建STM32CubeMX工程

打开STM32CubeMX,点击【ACCESS TO MCU SELECTOR】,如图1所示。在搜索栏中输入“STM32F103VE”,之后选择并双击【STM32F103VETx】,如图2所示。最后进入如图3所示的界面。

图1

图2

图3

2、配置工程参数

(1)在【Pinout & Configuration】界面中,点击【System Core】中的【SYS】,将【Debug】设置为【Serial Wire】,之后就可以通过ST-LINK烧录程序,方便调试。

图4

(2)点击【RCC】,将【High Speed Clock(HSE)】和【Low Speed Clock(LSE)】都设置为【Crystal/Ceramic Resonator】,即由外部晶振提供系统时钟。

图5

(3)点击【Clock Configuration】到时钟配置界面,根据图6进行配置。

图6

(4)回到【Pinout & Configuration】界面,将【PE6】设置为【GPIO_Output】推挽输出模式,,默认为高电平,并添加用户标签【LED2】,如图7所示。

图7

(5)点击【Project Manager】到项目管理界面,在【Project】设置好项目名称、路径以及要使用IDE,如图8所示。并在【Code Generator】界面选上“Copy only the necessary library files”和“Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral”。如图9所示。

勾选“Copy only the necessary library files”表示只复制需要用到的库文件,能够提高编译效率。

勾选“Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral”表示为每一个外设初始化都生成一对的“.c/.h”文件,能使代码更有条理,方便编写代码。

图8

图9

(6)点击【GENRATE CODE】,等待STM32CubeMX生成初始化代码,如图10所示。等待一段时间完成后,如图11所示,点击【Open Project】即可打开MDK-ARM界面,如图12所示。第一次打开由Cube生成的初始化代码最好有编译的的习惯,让各个文件进行关联。

图10

图11

图12

3、完善代码

在main.c中完成如下代码。注意养成在一对【BEGIN】和【END】编写代码的习惯,这样在Cube更改配置并更新生成的初始化代码后,自己写的代码也不会消失。

     HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);

4、编译并烧录代码


四、运行结果

LED2被点亮。

STM32CubeMX学习之旅1:点亮一个LED灯相关推荐

  1. GD32学习笔记1(高难度工程,点亮一个LED灯)

    系列文章目录 第一章 GD32学习笔记1(高难度工程,点亮一个LED灯) 文章目录 系列文章目录 前言 一.工作流程 二.新建工程的准备工作 三.新建工程 四.工程目录管理 五.代码实现 1.初始化 ...

  2. stm32CubeMX点亮一个LED灯

    文章目录 一.CubeMX配置LED IO口 二.使用HAL库函数点亮LED 本篇文章将带大家使用CubeMX配置stm32点亮一个LED灯. 一.CubeMX配置LED IO口 1.单片机型号选择: ...

  3. java gpio_单片机基础——使用GPIO输出点亮一个LED灯

    1. 准备工作 硬件准备 开发板 首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接. 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程 ...

  4. 从零点亮一个led灯

    Stm32学习笔记一:stm32cubemx和keil5从零开始点亮一个LED灯 一.软件材料准备:stm32cubemx和keil5软件(下载方式可自行上网搜,这里不再详细叙述) 二.硬件材料准备: ...

  5. 使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯

    使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯 软件下载 基于Arduino环境搭建 点亮一个LED灯 上传成功 修改代 ...

  6. 51单片机入门教程(1)——点亮一个LED灯

    51单片机入门教程(1)--点亮一个LED灯 一.什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器 ...

  7. lajp linux教程,linux IMX6 汇编点亮一个LED灯

    驱动Linux引脚与驱动STM32其实是一样的,都是在操作寄存器,在相应的寄存器上附上相应的值即可驱动. IMX6U手册上有各个管脚的命名,跟STM32不同,IOMUXC_SW_MUC_CTL_PAD ...

  8. 3.基础实验-实验01-点亮一个LED灯

    目录 3.1 实验01-点亮一个LED灯 3.1.1 STM32CubeMX软件配置 ​3.1.2 代码编写 3.1.3 编译与下载程序 3.1.4 查看实验结果 3.1 实验01-点亮一个LED灯 ...

  9. 51单片机(入门保姆级教程)——点亮一个LED灯

    一.为什么要学习单片机? 作为一名工科学生,进入大学参加各种活动,例如:电子设计大赛.寻迹车比赛.LED电子灯比赛以及各种各样的微控.弱控强电路等,都离不开单片机的身影.电路.c语言.数电.模电.计算 ...

  10. C51单片机1.点亮一个LED灯

    文章目录 一.实验原理 二.实验电路图 三.代码实现 一.实验原理 LED发光二极管具有单项导通性,通过5mA左右的电流就能正常点亮发光二极管,电流越大,LED的亮度就越强,但是如果通过的电流过大,就 ...

最新文章

  1. netbeans 添加gif图片_怎么制作动态图片?手机如何制作清晰gif动图?
  2. 通过C#代码 压缩/解压文件
  3. Microsoft.VsHub.Server.HttpHost
  4. jsp mysql在线考试系统源码_课内资源 - 基于JSP和MYSQL数据库实现的在线考试系统...
  5. 推荐TensorFlow2.0的样例代码下载
  6. 关于ASP.NET 中的主题
  7. python之if经典语句_Python之if语句、字典
  8. php关闭gd库,详解php开启gd库的两种方法
  9. 图像融合评价指标:CC(Correlation Coefficient)以及余弦相关度、欧氏距离和皮尔逊相关度的通俗解释
  10. python编辑器使用技巧大全_markdown编辑器常用功能汇总
  11. C/C++[codeup 1907]吃糖果
  12. cv2批量修改图片大小
  13. 解决MAC系统升级后虚拟机黑屏问题
  14. 如何在一张ppt中插入多张图片并能依次播放
  15. 头同尾合十的算法_头同尾合十的计算规律
  16. Multisim14创建LM386教程(含所需文件)
  17. P2657 [SCOI2009] windy 数(数位DP)
  18. [激光原理与应用-21]:《激光原理与技术》-7- 激光技术大汇总与总体概述
  19. linux 普通用户修改密码
  20. 2021年G1工业锅炉司炉考试内容及G1工业锅炉司炉考试技巧

热门文章

  1. uniapp-request请求思维导图
  2. 数据集中度分析,数据分布情况
  3. git拉取和提交代码
  4. netty 系列之:netty 中常用的字符串编码解码器
  5. java贪吃蛇课程设计报告_java贪吃蛇课程设计报告().doc
  6. (已更新)柒微自动发卡系统源码
  7. Linux定期清理内存方法
  8. 四面体内接圆圆心坐标计算模板
  9. mysql医学数据库_医学离线数据库 1.0
  10. 中国联通公司与中国移动的差别,就在这!