STM32 基于 CubeMX配置GPIO点亮LED灯

发布者:时光如梦最新更新时间:2020-08-28 来源: eefocus关键字:STM32  CubeMX配置  GPIO  点亮LED灯 手机看文章 扫描二维码
随时随地手机看文章

1 前言

本文基于ST的STM32F767ZI NUCLEO144开发板,结合CubeIDE的插件CubeMX配置生成代码点亮板载的LED,点亮可谓是单片机开发中的hello world,非常简单;


1。


在这里插入图片描述


LED是正向导通,反向截止的,它在电路设计中的符号如下图所示;

在这里插入图片描述
因此这里,有几点简单介绍一下:

  • ① 通常接电源正极;

  • ② 通常接地;

  • 确保流过电流在5mA-10mA;

文章写到,如何快速构建CubeIDE环境,另外我还整理了官方的资料,打开en.DM00244518.pdf,NUCLEO144的板载资源如下图所示;
在这里插入图片描述

可以看到这里有三个用户LED,下面就结合CubeIDE中的CubeMX插件配置生成相应的代码;

2.3 电路分析

解压文件en.nucleo_144pins_sch.zip,打开原理图的pdf文件MB1137.pdf;可以看到,Blue LED和Red LED,具体如下图所示;

在这里插入图片描述

Green LED如下所示;


在这里插入图片描述

根据虚短和虚断,Vout=200K10K+200KVinV_{out} = cfrac{200K}{10K+200K}V_{in}Vout=10K+200K200KVin ;感觉像是电压跟随器,那Vout=VinV_{out} = V_{in}Vout=Vin, 电路分析水平有点抠脚了;

PinLEDMode
PB14REDPP
PB7BLUEPP
PB0GREENPP

PP为推挽输出;

3 CubeMX配置

打开CubeIDE,

3.1 SYS 配置

NUCLEO144板载一个ST-LINKV2,下载和调试程序的时候下面会用SWD模式,所以这里SYS的Debug选择Serial Wire,具体如下图所示;


在这里插入图片描述

3.2 GPIO 选择

第一步:
在Pinout view的芯片试图上找到所需要的Pin,本文使用了 PB14,PB7,PB0,图中找到PB7,并鼠标点击并弹出菜单;


第二步:
选择GPIO的模式为GPIO_Output;
具体如下图所示;


在这里插入图片描述

3.3 GPIO 配置

选择了三个Pin,分别为PB14,PB7,PB0,全都配置为:

  • GPIO output level:初始化完成之后输出的电平状态为高;

  • GPIO mode:输出模式为推挽输出;

  • 上拉和下拉模式:这里暂不配置,没有影响;

完成后如下图所示;


在这里插入图片描述

4 程序生成

最终生成了配置代码如下;

static void MX_GPIO_Init(void){
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOB_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_14|GPIO_PIN_7, GPIO_PIN_SET);

  /*Configure GPIO pins : PB0 PB14 PB7 */
  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_14|GPIO_PIN_7;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);}12345678910111213141516171819

5 程序下载

将NUCLEO144的CN4和CN6的跳帽设置为如下图的状态,这样就使用了板载的STLINK给板载的MCU下载固件


在这里插入图片描述
进入调试模式并开始运行,终于点亮了,我手舞足蹈起来,表情无比激动(浮夸的演技

关键字:STM32  CubeMX配置  GPIO  点亮LED灯 引用地址:STM32 基于 CubeMX配置GPIO点亮LED灯

上一篇:STM32——GPIO设置:快速点亮第一个LED灯
下一篇:STM32 (3) GPIO口功能讲解 GPIO 口输入输出 寄存器配置

推荐阅读最新更新时间:2024-11-19 04:47

STM32从入门到精通—Nucleo板卡的原理图
这篇文章主要来介绍一下如何看懂Nucleo板卡的原理图。 我们在选好一款开发板之后,需要对它的原理图有所了解 绿色的是三个模块,每个模块的引脚都已经标出来了。 粗线表示总线,一根粗线代表好多引脚,比如PA0~PA15是用同一根线来表示的。细线表示一个信号,粗线表示更多信号。 原理图中的U5V代表的是USB5V,我们自己在命名的时候也要参考这种方案。 MOS管用很多不同的引脚同时输出,这是因为封装的引脚不一定能承受大电流,这样可以增加电流的可靠性。 VIN可以接受比较宽的范围,然后经过LD1117转换成5V。如果VIN没有输入,通过E5V输入5V也是可行的,在这种情况下,如果VOUT大于VIN就有可能烧坏1117
[单片机]
<font color='red'>STM32</font>从入门到精通—Nucleo板卡的原理图
keil环境下stm32 对printf映射
printf虽然是C语言的标准函数,但是是针对有stdin, stdout设备的系统的,在嵌入式平台上是没有标准的stdin, stdout的,需要映射到串口后某个输出对象的,而嵌入式平台各不相同,如果又没有操作系统的支持,就只能靠自己实现了,因此STM32下的printf不在标准库里,而在定制的库里。而且一般在嵌入式平台一般也不用printf,可以自己使用sprintf()函数先将数据格式化到缓冲里,然后数据想输出到哪里就输出到哪里。 如果使用的是MDK,请在工程属性的“Target“-》”Code Generation“中勾选”Use MicroLIB“ #ifndef __UART_INTERFACE_H #defin
[单片机]
stm32和电机开发(从mcu到架构设计)
有过外资企业工作经验的同学应该都有这样的感觉,好像老外都很擅长做架构设计。与此相比较,国内的同学似乎更擅长编写代码。同样的设计,老外比较喜欢画图,文字部分有,但也是文字和图各一半;国内同学写文档比较少,更喜欢写代码,就算写文档也是文字和表格占了一大部分。 细细想来,出现这种差别,既有文化的原因、差异,也有产业分工的原因,同时也有东西方工作方法的差别。西方比较看重的是沟通、协同、接口定义清楚;东方讲究分工,功能完整,快速推进。 就拿架构设计来说,不管是业务层面的,还是技术层面,画图是少不了的。但是画图是为了构建模型,挖掘出问题的主要矛盾、主要流程,不是为了画图而画图。如果架构设计只是停留在纸面上,落不
[单片机]
<font color='red'>stm32</font>和电机开发(从mcu到架构设计)
带你一步步了解STM32启动代码
对于熟悉电脑的伙伴们来说,BIOS(那个蓝色的界面)可能不会太陌生吧,这货就是电脑的启动代码。没有BIOS的电脑,那注定是一块板砖!BIOS主要是做一些开机前的准备工作,例如系统时间设定、启动顺序。。。扯远了 其实电脑本身就是从单片机而来,那么单片机也是有启动代码的,只是我们绝大部分情况 不去关心它。 启动代码究竟都干了些什么工作,为何需要它?想想你在c语言中用到了什么东西,而这些东西却是拿来就可以用的?堆、栈!没错,就是他们。我们知道堆和栈是内存中划分出的一块区域,那为什么我们没有亲自划分呢,因为启动代码帮了你的忙!!!再想想单片机工作的时候,有哪些配置被我们忽略了,而它却可以用?时钟,就是这货,我们可以不配置时钟,而你
[单片机]
带你一步步了解<font color='red'>STM32</font>启动代码
STM32学习笔记一外部中断
1. STM32 外部中断简介 STM32 的每个 IO 都可以作为外部中断的中断输入口。STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。代码主要分布在固件库的 stm32f10x_exti.h 和 stm32f10x_exti.c 文件。 STM32F103的 19 个外部中断为: 触发方式:STM32 的外部中断是通过边沿来触发的,不支持电平触发。 2. 外部中断分组 STM32 的每一个 GPIO 都能配置成一个外部中断触发源,STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组。 比如:PA0,PB0,PC0,PD0,PE0,PF0
[单片机]
<font color='red'>STM32</font>学习笔记一外部中断
9. STM32的时钟系统
一。 时钟系统框图讲解 1. STM32的5个时钟源 a。高速内部时钟 HSI,大约为8MHz b。高速外部时钟 HSE,晶振取值范围在4M--16M,一般采用8M晶振 c。低速外部时钟 LSE,32.768k晶振,可以作为RTC的时钟源 d。低速内部时钟 LSI,大约为40KHz e。PLL锁相环时钟 2. 系统时钟 系统时钟SYSCLK的3个来源 a。HSI b。HSE c。PLL 3. RTC的时钟来源 a。LSE b。LSI c。LSE的128分频 4. 独立看门狗IWDGCLK的时钟来源 LSI 5.USB的时钟USBCLK的来源 最大频率为48MHz PLL经过预分频器产生1或1.5分频 6. 内部时钟输出MCO,
[单片机]
9. <font color='red'>STM32</font>的时钟系统
STM32单片机的独立看门狗和窗口看门狗的特点及用法解析
1.看门狗介绍 看门狗这东西虽然简单,但我相信绝大多程序员没有足够重视它。使用看门狗保证系统正常地运行是非常有必要的。我们在设计产品时,代码以及硬件设计缺陷或是外界电磁干扰都有可能使系统死机,如果不能正常对其进行复位,系统的可靠性将大打折扣。看门狗分为软件看门狗和硬件看门狗两类,其原理都是使用一个独立定时器来计时,超出时间就会产生复位信号,主要区别看是否具有独立的硬件结构,如果有,就是硬件看门狗,如果是一个普通定时器实现的那么就是软件看门狗。STM32F407片内有两个看门狗:独立看门狗IWDG以及窗口看门狗WWDG,下面来讨论各自的特点和用法。 2.IWDG的特点以及使用 IWDG是一个独立看门狗,具有独立于系统的时钟,与片
[单片机]
STM32直接驱动RGB接口的TFT数字彩屏设计
引言     随着工业技术的不断发展,人机界面的开发及应用空前火热,为了具有比较友好的人机界面,TFT数字彩屏被广泛的应用,但是TFT彩屏通常都不带有控制器,所以现在驱动彩屏的方案大致有2种:     ①采用ARM9或者更高级别的平台,芯片上带有TFT控制器,可以直接挂接TFT数字屏。     ②采用低端CPU处理器平台,外加TFT控制器模块,再挂接TFT数字屏。     对于方案①来说,系统的复杂度会莫名地增加,再加上该类的平台中主MCU多为BGA封装,对于需求很多小量多样化产品的客户来说,较难以接受这样的方案;而 ②方案平白无故添加了一个LCD控制器。这两种方案无论哪一种都增加了硬件成本,本文提出了一种由STM32的FSMC总线
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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