本学习采用“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. 算法提高课-搜索-DFS之搜索顺序-AcWing 1117. 单词接龙:dfs
  2. boost::pfr::detail::fields_count相关的测试程序
  3. Azure SQL Database (23) Azure SQL Database Dynamic Data Masking动态数据掩码
  4. h5策划书_一个好的H5营销活动设计要如何进行策划
  5. HTTP Content-Type类型
  6. [引]VS2005 之 Visual Basic 程序的结构
  7. android string参数最大长度,每日一问 | 我们经常用的 String类型,你知道它最大可以放多长的字符串吗?...
  8. 关于ORACLE的GUID主键生成
  9. sql server 2000的数据库还原
  10. 基于深度学习的搜索、推荐、广告系统最全最新论文分享
  11. java程序如何执行jar包_java程序如何打包成可执行jar包?
  12. 教你如何关闭Mac电脑的Microsoft AutoUpdate弹框提示
  13. PlutoSDR软件无线电平台带宽破解
  14. 关于idea链接oracle数据库出现IO 错误: Got minus one from a read call, connect lapse 1 ms., Authen
  15. 测试用例设计——正交实验法
  16. uniapp得到用户当前定位以及用户选择位置
  17. Petya and Inequiations 题解
  18. 【java】Java 包(package)
  19. 通信达股票交易接口使用步骤
  20. 足球数据API接口 - 【足球赛事分析数据】API调用示例代码

热门文章

  1. 清理SONY D-NE10 的线控器
  2. C++学校图书馆管理系统
  3. spring boot 缓存redis设置定时过期时间
  4. Nginx常见错误代码总结和处理方案
  5. 怎么做视频拼接?借助这款软件事半功倍
  6. Maven安装配置全教程
  7. PCA(主成分分析)的理解与应用(学习笔记)
  8. c语言如何检测网络是否连接,判断网络连接是否可用
  9. 2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通
  10. 工业和信息化部教育与考试中心证书有用吗怎么报考 ?