我是一个只会点灯的菜鸟;


相关文章

【STM32系列汇总】小白博主的STM32实战快速进阶之路(持续更新)

1 前言

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

2 理论分析

2.1 LED 原理

发光二极管简称为LED,生活中几乎无处不在,由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光,氮化镓二极管发蓝光。因化学性质又分有机发光二极管OLED无机发光二极管LED1

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


因此这里,有几点简单介绍一下:

  • ① 通常接电源正极;
  • ② 通常接地;
  • 确保流过电流在5mA-10mA

2.2 板载资料

上一篇文章写到,如何快速构建CubeIDE环境,另外我还整理了官方的资料,文档都在这里,密码: 1rjv,打开en.DM00244518.pdf,NUCLEO144的板载资源如下图所示;
可以看到这里有三个用户LED,下面就结合CubeIDE中的CubeMX插件配置生成相应的代码;

2.3 电路分析

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

Green LED如下所示;

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

Pin LED Mode
PB14 RED PP
PB7 BLUE PP
PB0 GREEN PP

PP为推挽输出;

3 CubeMX配置

打开CubeIDE

3.1 SYS 配置

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

3.2 GPIO 选择

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

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

3.3 GPIO 配置

选择了三个Pin,分别为PB14PB7PB0,全都配置为:

  • 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); }

5 程序下载

NUCLEO144CN4CN6的跳帽设置为如下图的状态,这样就使用了板载的STLINK给板载的MCU下载固件;


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

STM32 基于 CubeMX配置GPIO点亮LED灯(超级详细+图文并茂)的更多相关文章

  1. 《RT-Thread Studio开发STM32》第一章~第一节《配置STM32H743XIH6点亮LED灯》

    安装RT-Thread Studio后添加相关芯片库文件,打开软件 打开SDK管理界面,安装相关的库文件,本次采用STM32H743XIH6芯片,野火开发板. 新建工程并设置相关的参数 先编译下下载到 ...

  2. 第二章之S5PV210在BL1中点亮LED灯

    1,u-boot中第一个入口在./arch/arm/cpu/armv7/start.S 翻到153行:如下图 前面都是进行一些基本设置,不用管. cpu_init_cp15设置协处理器, cpu_in ...

  3. 第7章 使用寄存器点亮LED灯

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  4. C语言版——点亮LED灯,深入到栈

    在上一篇进行了汇编语言的编写之后,我们采用C语言来编写程序,毕竟C语言才是我们使用最多的语言. 仅仅是点亮LED灯显然太过于简单,我们需要分析最后的反汇编,了解函数调用栈,深入C语言骨髓去分析代码,并 ...

  5. 第7章 使用寄存器点亮LED灯—零死角玩转STM32-F429系列

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  6. Raspberry PI 系列 —— 裸机点亮LED灯

    Raspberry PI 系列 -- 裸机点亮LED灯 背景 近期刚买了Raspberry PI B+,配置执行了官方提供的Raspbian系统,折腾了一周Linux系统,感觉没啥意思,于是就试着想了 ...

  7. 初探RT-Thread系统在GD32E103x芯片上的使用,点亮LED灯

    初探RT-Thread系统在GD32E103x芯片上的使用,点亮LED灯 前言 ​ 随着中美贸易战的加剧,很多公司越来越重视使用国产技术的重要性.使用国产技术,一方面可规避国外对技术的封锁造成产品核心 ...

  8. JZ2440开发板:用按键点亮LED灯(学习笔记)

    本文是对韦东山嵌入式第一期学习的记录之一,如有您需要查找的信息,可以继续往下阅读. 想要用按键点亮LED灯,就需要知道按键和LED灯的相关信息,这样才可以进行之后的操作.阅读JZ2440的原理图,可以 ...

  9. 30个物联网传感器小实验:三行代码点亮LED灯

    30个物联网传感器小实验:三行代码点亮LED灯 三行代码点亮LED灯 LED灯闪烁 LED灯调亮度 LED淡入淡出 不写一行代码点亮LED灯 全彩RGB灯 面包板 30个物联网传感器小实验:三行代码点 ...

随机推荐

  1. 常用App用户体验找茬

    冯晓云: 哔哩哔哩手机客户端:视频播放只允许横屏全屏:还有长视频的“5分钟诅咒”,遇到网速不好的时候是个大写的悲剧: 必应词典UWP版本:主页新闻链接跳转后,一些页面不支持划词取译,当然本身各个页面也 ...

  2. SPFA()判环

    1 SPFA()判负环 SPFA()判负环的原理就是在求最短路的过程中,如果存在负环,比如说要求从A到a的最短距离,设为s,但是经过a->c->b->a可以更短,所以如果一直经过a- ...

  3. Eclipse Hadoop源码阅读环境

    一.解压hadoop src包到workspace目录.为加快下载jar包的速度,在eclipse的maven设置里将配置文件的路径设置正确,然后配置maven的settings.xml: <m ...

  4. shiro:注解配置(五)

    基于[shiro集成spring]项目改造 引入相关依赖环境 <!--AOP的jar包--> <dependency> <groupId>org.aspectj&l ...

  5. Linux-Discuz安装LAMP

    1.下载,解压Discuz cd /data/discuz wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip un ...

  6. C#集合ArrayList、泛型集合List(3)

    数组的制约:局限性.有多少放多少,要想追加,就必须重新再定义一个数组,这就造成了资源的极大浪费而且性能消耗也比较大.因此此操作不太推荐.所以集合就来了. ,,,} 创建集合: ArrayList li ...

  7. 树莓派3b在rt-thread上移植LittlevGL

    树莓派3b在rt-thread上移植LittlevGL 目录 树莓派3b在rt-thread上移植LittlevGL 1.本文概述 2.资源准备 3.上手体验 4.rt-thread与lvgl进行无缝 ...

  8. 负载均衡服务之HAProxy基础配置(五)

    前文我们聊了下haproxy的修改报文首部的配置.压缩功能以及haproxy基于http协议自定义健康状态检测机制:回顾请参考https://www.cnblogs.com/qiuhom-1874/p ...

  9. AIX详细的VG,LV扩容步骤

    需求 1.归档日志刷得太快,经常把空间挤爆. 2.Oracle数据库表空间需要扩容 解决方案 1.先做重要数据备份 2.进行文件系统扩容 步骤 1. df -g 查找出/u01 对应的VG卷 VOLU ...

  10. 二、Vue基础语法

    六:Vue的v-bind指令作用:绑定标签上的所有属性其简写 ":" 6.1:    例如:<p v-bind:id="test">Hello wo ...