本文涉及的相关硬件:STM32F407VET6、DAPLINK;

本文涉及的相关软件:Keil uVision5、STM32CubeMX

本文章基于以下两篇博文进行理解学习记录:

【STM32Cube_03】使用GPIO点亮一个LED_Mculover666的博客-CSDN博客【三】零基础上手HAL库之—GPIO点灯_PlayCodes的博客-CSDN博客_hal_gpio_togglepin

目录

1 基础准备

1.1 硬件准备

1.2 软件准备

2 在MDK中编写、编译、下载代码

2.1 基础配置

2.2 代码编写


1 基础准备

1.1 硬件准备

首先,我们需要用四根杜邦线完成开发板与下载器的连接。

连接方式:DAPLINK上的3V3、SWD、SCK、GND,分别通过杜邦线与开发板上的VCC、SWDIO、SWCLK、GND相连。

对于驱动问题,若是使用Win10、Win11系统,则无需安装驱动,即插即用。在数据线插上电脑USB接口后,可从电脑设备管理器找到。

1.2 软件准备

打开STM32CubeMX,打开MCU SELECTOR,搜索并选中芯片STM32F407VET6:

时钟源配置(时钟树配置参看文章开头的两篇博客):

GPIO引脚配置:

① 初始化输出电平。输出为低电平时LED灯会亮;
        ② 输出的模式(推挽、开漏输出)。这里使用默认的推挽输出即可;
        ③ 是否上下拉引脚(上拉,下拉)。这里使用默认;
        ④ 引脚速度(低,中,高速)。流水灯对引脚速度没有特殊要求,低速即可;
        ⑤ 用户标签。在初始化完成后,对应的引脚和端口会有对应的宏定义在main.h中生成。

        上述设置完成后,在STM32CubeMX自动生成代码后,可在gpio.c文件下查看到:

void MX_GPIO_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct = {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_GPIOH_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();/*Configure GPIO pin Output Level */HAL_GPIO_WritePin(GPIOA, LED2_Pin|LED3_Pin, GPIO_PIN_RESET);/*Configure GPIO pins : PAPin PAPin */GPIO_InitStruct.Pin = LED2_Pin|LED3_Pin;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);}

下载模式配置:DAPLINK选Serial Wire(如果不进行配置进行一次下载后,再一次下程序可能就下不进去)。

项目管理配置以及代码生成:

在进行大型项目编写时,常常要求模块化编程,以及对文件大小有所约束,一般情况下,选择以上两个选项(指Copy only the necessary librariy files 和 Generate peripheral initialization as pair of '.c/.h' files per peripheral)可以大大的优化编程。在代码量和代码可读性上有所优化。 (本段话来自博客:【三】零基础上手HAL库之—GPIO点灯_PlayCodes的博客-CSDN博客_hal_gpio_togglepin)

都配置好后,点击右上角:

2 在MDK中编写、编译、下载代码

2.1 基础配置

STM32CubeMX生成的代码目录如下:

首先对keil进行配置:

点击Settings进入:

点击Settings进入(非常重要的一个):

2.2 代码编写

首先由main.h文件可知:

#define LED2_Pin GPIO_PIN_6
#define LED2_GPIO_Port GPIOA
#define LED3_Pin GPIO_PIN_7
#define LED3_GPIO_Port GPIOA

所以可如下编写引脚:

while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_Delay(200);HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin);}

如果在STM32CubeMX的GPIO里面user label那边没有定义的话,那就写(GPIOA,GPIO_PIN_7);如果在里面定义成LED2的话,则还可以写成( LED2_GPIO_Port, LED2_Pin)。

HAL_GPIO_TogglePin:

【用于翻转某个GPIO引脚的电平状态。如果为0则变为1;如果为1则变为0】

/*** @brief  翻转引脚电平* @param  GPIOx * @param  GPIO_Pin * @retval None*/
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

【过于GPIO相关函数解的析(HAL库)可参考博客:GPIO相关函数解析(HAL库)_冬瓜~的博客-CSDN博客_gpiopinstate类型的值】

进行编译后下载:

点灯成功!!!         

【STM32】1—零基础硬件软件配置 完成LED的闪烁相关推荐

  1. STM32+CubeMX零基础串口收发全攻略

    系列文章目录 第一章:初学单片机,使用STM32进行点灯 文章目录 系列文章目录 前言 一.使用到的装置和软件 二.串口收发 1.STM32CubeMX配置 2.keil5的使用 (1)阻塞式收发 使 ...

  2. stm32单片机零基础怎么入门,用什么语言编程?

    我们随便在招聘平台搜"嵌入式开发"这个职位,看到很多职位都要求会STM32,为什么? 我个人也用了STM32单片机几年,感觉非常爽,后面做产品能用ST的基本不用别的. 主要原因有以 ...

  3. STM32使用另外两种方法使LED灯闪烁

    文章目录 GPIO_SetBits/GPIO_ResetBits函数介绍 第二种led闪烁语句 GPIO_Write函数介绍 第三种led闪烁语句 杨桃32学习笔记,本文图片文字皆为转述 GPIO_S ...

  4. STM32使用GPIO_WriteBit()函数使LED灯闪烁

    文章目录 模仿四种方法点灯的示例程序,在工程模板上进行编写 分析LED_Init初始化函数 分析GPIO_WriteBit函数 杨桃32学习笔记,本文图片文字皆为转述 模仿四种方法点灯的示例程序,在工 ...

  5. 基于Proteus无实物零基础STM32入门自学教程(七)--定时器点亮LED

    简介:本项目为基于STM32F103R6为核心定时器点亮LED工程.在第一个任务里我们点亮LED是使用延时点亮.从这一讲我们开始学习真正的定时器使用方法,而这种方法是最接近实际应用的.实际应用中几乎不 ...

  6. 零基础学stm32要多久?stm32应该怎么学?

    STM32由于资料丰富.稳定.性价比高深得广大工程师和企业的喜爱. 现在随便在招聘平台上搜索单片机开发或者嵌入式开发,基本都要求会STM32. 我用STM32也有很多年了,基本上是围绕着F103.F0 ...

  7. **浅谈STM32系列单片机的零基础学习方法**

    浅谈STM32系列单片机的零基础学习方法 *很多朋友想必在零基础学习STM32F1这系列单片机时会感觉无从下手,或者不知道写程序时到底是用库函数好还是寄存器好.* 我个人认为一个零基础的朋友可以通过以 ...

  8. 基于STM32的最小系统电路设计(手把手零基础教学)

    文章目录 前言 一.复位电路 二.晶振电路 三.电源转换电路 四.SWD下载电路 五.LED测试电路 六.芯片外扩引脚 七.STM32微控制电路 总结 前言    在上篇介绍完<STM32的核心 ...

  9. SLAM导航机器人零基础实战系列:(四)差分底盘设计——2.stm32主控软件设计

    SLAM导航机器人零基础实战系列:(四)差分底盘设计--2.stm32主控软件设计 摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买 ...

最新文章

  1. ACL控制访问列表原理+实验
  2. 【HDOJ】3315 My Brute
  3. Java正则表达式实现计算器_用java编写win7计算器
  4. 嵌入式Linux系统编程学习之二十无名管道(PIPE)
  5. 技术人员如何创业《一》- 产品及想法
  6. 让 API 端点的响应速度提高 50 倍!
  7. 在Htdocs之外创建XAMPP / Apache服务文件[关闭]
  8. 万能启动利器FbinstTool引导工具教程
  9. endnotex8与9的区别_下载安装EndnoteX8或EndnoteX9,建立数据库并以自己的名字命名。...
  10. Microsoft Office LTSC ProPlus 2021 Volume(含:Project + Visio)离线命令方式安装说明(原创)
  11. 爬取股票收盘价,计算神奇九转
  12. 儒家文化圈孕育人工智能新文明
  13. matlab鼠标定位图像中像素点的坐标
  14. 计算机网络第一章(谢希仁第8版学习)
  15. c++栈的基础应用,括号匹配、逆波兰表达式求值
  16. 大众点评的大数据实践转
  17. 使用Neo4j+InteractiveGraph实现豆瓣电影知识图谱可视化
  18. kali linux基本口令_kali linux 新手入坑指南(命令篇)
  19. 带着问题读源码-soul(2021-01-14)
  20. sql盲注如何修补_如何修复SQL注入漏洞

热门文章

  1. DotNetBar for Windows Forms 14.0.0.15_冰河之刃重打包版发布
  2. 2021计算机二级c语言报名,2021计算机等级考试报名入口
  3. 如何快速处理企业邮箱退信问题?
  4. 如何实时打通数据孤岛?Tapdata 创始人唐建法 GOTC 深度分享
  5. FL7921RMX 2输出升压PWM调光 LED驱动器 商业照明模组解决方案
  6. 一加手机怎么root权限_一加手机X获取root权限最简单的方法!
  7. echarts画中国地图并上色
  8. 【区块链】高盛发布最新区块链79页完整中文版报告《区块链:从理论走向实践》
  9. windows安装nodejs【详细教程】
  10. 抽取JDBC工具类的方法