单片机基础——使用GPIO输出点亮一个LED灯
1. 准备工作
硬件准备
开发板
首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接。
软件准备
- 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程
2.创建工程
选择芯片型号
打开STM32CubeMX,打开MCU选择器:
搜索并选中芯片STM32L431RCT6
:
配置时钟源
- 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;
- 如果使用默认内部时钟(HSI),这一步可以略过;
这里我都使用外部时钟:
配置GPIO引脚
查看原理图,确定控制LED引脚,这里我们的LED使用的是PC13引脚。
所以接下来我们选择配置PC13
引脚:
配置时钟树
STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz
即可:
生成工程设置
代码生成设置
最后设置生成独立的初始化文件:
生成代码
点击GENERATE CODE
即可生成MDK-V5工程:
生成成功
3. 在MDK中编写、编译、下载用户代码
编写用户代码
STM32CubeMX生成的代码目录如下:
进入MDK-ARM文件夹
目录,打开工程:
在main.c
中的main函数中编写简单的用户代码:
while ()
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_Delay();
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
}
编译代码
点击如图所示的按钮编译工程
设置下载器
点击如图所示按钮打开设置页面
进行下载设置,选择“ST-Link Debugger”,并点击“Settings”。
在“Flash Download”菜单下勾选“Reset and Run”选项,已达到烧录程序后单片机自动复位并运行程序的目的。
下载运行
点击"LOAD"按钮即可烧录代码到单片机中。
烧录成功
实验现象
至此,我们已经学会了如何使用STM32CubeMX快速生成MDK的工程,点亮一个LED,接下来一节讲述如何使用 STM32CubeMX初始化GPIO进行按键检测。
单片机基础——使用GPIO输出点亮一个LED灯的更多相关文章
- 进阶之路(基础篇) - 001 亮一个led灯
/********************************* 代码功能:点亮一个led灯 使用函数: pinMode(引脚号,模式); digitalWrite(引脚号,电平状态); //默认 ...
- 点亮一个led灯
/********************************* 代码功能:点亮一个led灯 使用函数: pinMode(引脚号,模式); digitalWrite(引脚号,电平状态); //默认 ...
- linux IMX6 汇编点亮一个LED灯
驱动Linux引脚与驱动STM32其实是一样的,都是在操作寄存器,在相应的寄存器上附上相应的值即可驱动. IMX6U手册上有各个管脚的命名,跟STM32不同,IOMUXC_SW_MUC_CTL_PAD ...
- 《STM32CubeMX配置STM32H743XI工程》第一讲《初始化UART,重定义printf函数,点亮一个LED灯》
1.打开STM32CubeMX软件->新建一个工程(软件自行到ST官网下载安装) 2.输入对应的芯片型号(本次基于野火STM32H743XI Pro 开发板)点击Start Project生成项 ...
- 在 S5PV210 的 开发板上 点亮 一个 LED 灯
参考学习教程:周立功嵌入式Linux开发教程-(上册) 材料:首先 准备一个 安装好 Linux 的 开发板 使用 xshell 工具 连接 开发板 ,winscp 工具 连接 开发板 , 准 ...
- [ZigBee] 3、ZigBee基础实验——GPIO输出控制实验-控制Led亮灭
1.CC2530的IO口概述 CC2530芯片有21 个数字输入/输出引脚,可以配置为通用数字I/O 或外设I/O 信号,配置为连接到ADC.定时器或USART外设.这些I/O 口的用途可以通过一系列 ...
- 51单片机---点亮一个LED灯
1 程序源码 #include <REGX52.H> `包含51单片机的头文件` sbit led = P0^0; int main(void) { while(1) { led = 1; ...
- 第一个程序点亮一个LED灯
#include <reg52.h> // 引用52包文件 可以理解为命名空间 sbit P1_0 = P1^0; // 定义P1管脚0 void main() ...
- 点亮一个led
1:RS232电平:计算机串口 高电平为-12v,低电平为+12v,所以计算机与单片机进行通信的时候需要加电平转换芯片max232(高电平为-9到-12,低电平为+3到+12之间的. max232通常 ...
随机推荐
- JavaScript 简介与语法
一.JavaScript简介 ).head里面 ).body里面 (在body内最为严谨) ).</html>之后 //程序上来要执行的部分 [2]三个常用对话框 alert()警告对话框 ...
- 做成像的你不得不了解的真相2-灵敏度和QE
科研级相机的灵敏度由三个主要参数决定: 探测器的QE, 像元尺寸和相机噪声. 后两项我们以后再做专题讨论.这期先讲讲小编认为顶顶重要,看起来最容易理解,但是其实还有些奥妙的QE. QE-量子效率 QE ...
- 学习C++之前要先学习C语言吗?
C++ 读作“C加加”,是“C Plus Plus”的简称.顾名思义,C++ 是在C语言的基础上增加新特性,玩出了新花样,所以叫“C Plus Plus”,就像 iPhone 7S 和 iPhone ...
- 学习python-20191203-Python Flask高级编程开发鱼书_第02章 Flask的基本原理与核心知识
视频01: 做一个产品时,一定要对自己的产品有一个明确的定位.并可以用一句话来概括自己产品的核心价值或功能. 鱼书网站几个功能 1.选择要赠送的书籍,向他人赠送书籍(价值功能,核心价值的主线): 2. ...
- cs231n spring 2017 lecture12 Visualizing and Understanding
这一节课很零碎. 1. 神经网络到底在干嘛? 浅层的是具体的特征(比如边.角.色块等),高层的更抽象,最后的全连接层是把图片编码成一维向量然后和每一类标签作比较.如果直接把图片和标签做像素级的最近领域 ...
- SpringCloud快速搭建
1.SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.负载均衡.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发 ...
- [LC] 165. Compare Version Numbers
Compare two version numbers version1 and version2.If version1 > version2 return 1; if version1 &l ...
- JavaScript学习总结(九)事件详解
转自:http://segmentfault.com/a/1190000002174034 事件处理程序 在DOM中定义了一些事件, 而响应某个事件的函数就叫事件处理程序(或事件侦听器).事件处理程序 ...
- PHP 错误与异常的日志记录
提到 Nginx + PHP 服务的错误日志,我们通常能想到的有 Nginx 的 access 日志.error 日志以及 PHP 的 error 日志.虽然看起来是个很简单的问题,但里面其实又牵扯到 ...
- js 实现排序算法 -- 希尔排序(Shell Sort)
原文: 十大经典排序算法(动图演示) 希尔排序 1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版.它与插入排序的不同之处在于,它会优先比较距离较远的元素.希尔排序又叫缩 ...