【STM32】1—零基础硬件软件配置 & 完成LED的闪烁

发布者:影子猎人最新更新时间:2022-08-17 来源: csdn关键字:STM32  软件配置  LED  闪烁 手机看文章 扫描二维码
随时随地手机看文章

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  软件配置  LED  闪烁 引用地址:【STM32】1—零基础硬件软件配置 & 完成LED的闪烁

上一篇:【STM32】2—按键控制
下一篇:stm32驱动TB6600控制42/57步进电机的案例(TIM中断和PWM实验)

推荐阅读最新更新时间:2024-11-12 06:46

盛况空前,高峰论坛、STM32峰会圆满结束
STM32峰会圆满结束 STM32峰会4月26日-27日在深圳如期召开,盛况空前! o 出席人数达3500人 o 45个合作伙伴参与 o 180个展出 o 40场专题会议和技术研讨会 o 在线观众最高时达到5万多人! 2019年STM32峰会以一场AI魔鞋舞蹈揭开帷幕,精彩表演令全场嘉宾惊艳。 日本公司No New Folk Studio的首个智能鞋日志平台Orphe Track是STM32峰会上主要的第三方演示产品之一。该智能鞋的传感器模块Orphe Core采用意法半导体的传感器,能够极其精确和高效地跟踪用户的运动。传感器内部AI算法能够学习用户的行走和跑
[物联网]
盛况空前,高峰论坛、<font color='red'>STM32</font>峰会圆满结束
STM32模拟SPI通信
(1)更改GPIO配置 由于没有使用到硬件的SPI,那么将硬件初始化SPI部分进行删除,取消GPIO的复用功能,然后更改MOSI和SCLK引脚为输出模式,MISO更改为输入模式。 (2)改写uint8_t SPI1_SendByte(uint8_t byte)函数 void w25qxx_init(void) { /*! Enable GPIO clocks,使能GPIOB硬件时钟 */ RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOB, ENABLE); //端口配置 PB3 PB5 GPIO_InitStructure.GPIO_Pin = GPI
[单片机]
<font color='red'>STM32</font>模拟SPI通信
stm32按键单击,双击,长按
给arm初学者一个比较实用的多功能按键,实现单击,双击,长按。声明一下:这是我修改的例程。如果写到TIM3时间中断里不太消耗CPU资源。 key.h #define key_5 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5) key.c //在函数之外定义全局变量,这个几个标志位可以被外部程序引用。 u8 key_short; u8 key_long; u8 key_double; void key_set(void) { static u16 time=0; //申请一个按键计时器 u8 i=0; if(key_5==0)
[单片机]
STM32 FSMC LCD 液晶的驱动—ILI9320
原来老早知道 STM32 具有 带4个片选的静态存储器控制器。支持CF卡、SRAM、PSRAM、NOR和NAND存储器 并行LCD接口,兼容8080/6800模式 这个其实就是FSMC 在这之前我一直使用IO口模拟8080时序感觉操作简单速度也很不错,而且ST官方上的FSMC的说明文档看得实在很晕找不到重点一直没试过FSMC。最近有机会尝试驱动驱动一块2.4的ILI9320由于要接线为了省力气直接使用了 FSMC的接法,顺便整理下写点东西出来。 我想使用12864液晶可能是每个会单片机的基本功了通常用个P0口发送8Bit数据在用一些控制线产生时钟信号,12864使用6800通信方式而小的彩色FTF 或CSTN屏流行8080通信
[单片机]
LED可控硅调光问题解决方案
  目前的调光方式主要有三种,分别是:模拟调光方式,PWM调光及可控硅调光。利用可控硅调光对LED替代灯调光,现有的调光器电路可以不作变动,故此调光方式普遍看好, 于是出现了适合于可控硅调光的AC-DC 控制芯片。英飞凌公司推出的ICL8002G LED驱动芯片可支持可控硅调光,并具有单级PFC和初级测控制功能。   可控硅调光的原理   电位器RV2调整可控硅(TRIAC) 的相位角,当VC3超过DIAC的击穿电压时,可控硅会导通。当可控硅电流降到其维持电流(Iholding)以下时(如下图2),可控硅关断,且必须等到C3 在下个半周期重新充电后才能再次导通。灯泡灯丝中的电压和电流与调光信号的相位角密切相关,相位角的变化范围介于
[电源管理]
DELO推出LED 点光源固化灯控制单元,结构紧凑,功率高效
DELO 推出了两款新的 LED 固化灯控制与供电设备。 DELOLUX pilot S4i 与 S4T, 两款结构设计极为紧凑的设备,可以安装使用功率更高的点光源灯头。 借助新款 DELOLUX pilot S 系列,可以更高效地控制 DELOLUX 50 点光源固化灯,且最多可以独立控制四个灯头。这种设备结构紧凑,适合集成在空间有限的系统里。DELOLUX pilot S4i (i 代表集成)的尺寸仅为 100 x 80 x 100 mm; S4T(T 代表触摸)的尺寸约为 230 x 300 x 400 mm。 DELOLUX pilot S4i 专为集成于 PLC 控制的工艺系统而设计。控制单元没有集成式电源
[电源管理]
DELO推出<font color='red'>LED</font> 点光源固化灯控制单元,结构紧凑,功率高效
LED背光源:在夹缝中创新求生
在产业链两端的巨大压力下,背光源模组产品利润空间越来越小,一些厂商特别是二线厂商的经营和生存越来越艰难。下面就随电源管理小编一起来了解一下相关内容吧。 如何通过技术创新提升产品竞争力,已经成为LED背光源企业生死攸关的问题。  在日趋发展和成熟的液晶显示产业链中,LED背光源产业的劳动密集型特征和相对较低的进入门槛,导致目前背光行业处于竞争异常激烈的状态。 LED背光源:在夹缝中创新求生 一方面上游关键材料如光学薄膜仍掌握在少数厂商手中,材料价格难以下降,产品成本居高不下;另一方面还面临着下游客户不断要求价格调降的压力。 在产业链两端的巨大压力下,背光源模组产品利润空间越来越小,一些厂商特别是二线厂商的经营和生存越来越艰
[电源管理]
STM32启动文件选择说明
startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xx startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_hd_vl.s 大容量的STM32F100xx startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_ld_vl.s 小容量的STM32F100xx startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM3
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved