第一节 硬件解读
先看看原理图:
开发板上面芯片为:STM32L071KBU6,其中2号引脚(PC15)控制这一个LED,名为LD5,所以我们只需要控制STM32芯片的2号引脚(PC15)就可以控制LED啦。注意:LED的一侧为VDD_NODE,也就是3.3V,经过510欧姆的电阻之后,到LED的1号脚,所以我们只需要控制STM32的2号脚就可以来控制LED。STM32的2号脚为低电平,LED亮;反之则灭。
第二节 CubeMX配置
第一步:双击打开STM32CubeMX,,如下图,新建项目。注意:新建项目本教程只介绍一次,以后项目的建立不在重复。
第二步:在英文状态下搜索芯片:STM32L071KBU6,选后选择对应的芯片即可。注意:搜索芯片时,确保输入法在英文的状态下;选择芯片的时候,可以选择后缀带有“TR”的,2者芯片完全一致,不影响比赛。
第三步:配置时钟为32MHZ,如下图。注意:本教程默认配置时钟为32MHZ,以后不在重复。如果大家对时钟树有疑问的,请大家联系微信公众号管理员,如果人多,我们就单独出一期时钟树的教程。
第四步:配置下载器,如下图。注意:本教程下载器配置是配置一遍,后续教程将不再重复。
第五步:配置STM32的PC15,也就是2号引脚为GPIO_Output,并且配置标签为Zsdz_LED。
第六步:选择项目信息,如下配置:2处是项目的名字;3处是项目的路径;4处是编译器;5处是编译器版本。注意:项目路径不能包含中文等其他非法字符;编译器一定要选择MDK-ARM;编译器版本一定要选择v5。后续教程将不在重复本步操作。
第七步:如下图,将3,4处的按钮勾选,点击5处,生成Keil工程。注意:后续教程将不在重复本步操作。
第八步:点击上步的5处之后,会有一个对话框,意思分别是:打开项目文件夹位置;打开项目;关闭本窗口。注意:这里灵活处理,打开文件夹和项目都可以。后续教程将不在重复本步操作。
第三节 MDK代码
第一步,编译代码,检查STM32CubeMX生成的代码是否正常。如下图,点击1处编译,之后在2处可以看见:0错误,0警告。注意:后续教程将不在重复本步操作。
第二步:配置下载器,这一步很多步骤,希望大家看自己,一步一步来。注意:不要忘记点击“OK”,后续教程将不在重复本步操作。
第三步:编写代码,代码如下:注意:代码要存放在USER CODE BEGIN 和USER CODE END之间。
第四步:编译检查代码并下载。点击1处编译代码,之后在2处可以看见0错误0警告。代码没有问题之后,点击3处下载代码,在4处看见Flash Load finished at xxxx,就证明代码下载成功。注意:后续教程将不在重复本步操作。
第四节 实验现象
注意:下载程序的时候,请选择A开发板。
现象:LD5以500ms为间隔闪烁。
关键字:LED闪烁 STM32 CubeMX配置
引用地址:
第三章 一个LED闪烁
推荐阅读最新更新时间:2024-11-13 12:15
STM32单片机在DLP驱动电路的应用研究
Stm32是32位单片机,速度快,功能强,已被越来越多的应用于各类电子产品设计中,大功率RGB三色LED的体积小、重量轻、色彩饱和度好,已成为投影仪、背投电视等显示仪器首选的新型光源。为了得到结构更简单,携带更方便的仪器,本文在现有技术的基础上用stm32改进了DMD投影仪的驱动电路,用三色LED替代了传统DMD投影仪中的分立LED光源。与传统的DMD显示相比,该系统具有结构简单、体积小、重量轻、易于编程控制、成本低、节能环保等优点。 DLP投影技术是应用美国德州仪器公司开发的数字微镜元件--DMD(Digital Micromirror Device)作为主要关键处理元件以实现数字光学处理过程的技术。DLP显示的色彩清晰
[单片机]
STM32开发笔记74: STM32L0低功耗唤醒后的时钟选择
本文介绍STM32L0系列单片机低功耗唤醒后的时钟选择。 参看已有的低功耗例程,发现都使能了HSI时钟,一致没有深究其中的具体原因,今天把它搞明白了,现记录如下: 先看一下,使能低功耗的函数: void CTarget::EnableLowPower(void) { HAL_PWREx_EnableUltraLowPower(); HAL_PWREx_EnableFastWakeUp(); __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_HSI); DisableAllIO(); } 第1句使能超低功耗,第2句使能快速唤醒,第3句选择唤醒后的主始终,第4
[单片机]
嵌入式STM32学习:I2C-读写EEPROM2
bsp_i2c_ee.h #ifndef __I2C_EE_H #define __I2C_EE_H #include stm32f4xx.h /* AT24C01/02每页有8个字节 */ #define I2C_PageSize 8 /* AT24C04/08A/16A每页有16个字节 */ //#define I2C_PageSize 16 /* STM32 I2C 快速模式 */ #define I2C_Speed 400000 /* 这个地址只要与STM32外挂的I2C器件地址不一样即可 */ #define I2C_OWN_ADDRESS7
[单片机]
Keil MDK STM32系列(四) 基于抽象外设库HAL的STM32F401开发
概述 Windows下使用Keil MDK5进行 STM32F401 的开发和编译, 配合ST-LINK工具进行烧录, 使用硬件抽象库HAL. STM32F401硬件环境和连接 略, 与SPL环境相同 STM32F4 硬件抽象库 STM32F4xx_HAL_Driver 直接下载 STM32CubeF4 MCU 固件开发包 前往 https://github.com/STMicroelectronics/STM32CubeF4 点击Code - Download ZIP 文件比较大, 有接近300M, 解压备用 当前版本是v1.26.2. ST硬件抽象库HAL结构说明 STM32CubeF4Drivers 目录结构
[单片机]
STM32--CAN总线应运
CAN 总线在控制领域使用的非常广泛,如今大多数CPU芯片外围都扩展CAN接口。本文重点介绍以STM32F103E系列芯片为基础介绍CAN 总线的使用方法。 1. 硬件基础 CAN总线工作需要两根数据线,RX和TX,即为输入总线和输出总线。一般CPU与外界通信需要接一个驱动芯片(这点很像UART接口),常用的CAN芯片主要有:SN65VHD230、PCA82C250T等,本系统使用SN65VHD230作为CAN接口芯片。而CPU提供的CAN接口为CAN_L和CAN_H。 2. 软件设计 在进行软件设计时,我们首先来看这样的一个结构体: typedef struct { uint32_t StdId;
[单片机]
STM32学习日志——RTC实时时钟
以前刚买手机时,有一个困惑,为什么时钟拔掉电池后时间就暂停了,而手机拔掉电池后,时间照样在走,为了证明是否是联网的原因,将网络关掉后还是一样。后来学了单片机才明白系统有一个实时时钟,由一个小纽扣电池供电。手机应该也是类似的原因。 首先RTC的时钟源由RCC_BDCR的RTCSEL位控制,一般选择LSE振荡器,接着通过RTCPRL位将其分频,假设LSE为32.768kHZ,则PRL写入32767可得到周期为1秒的信号。而RTC_DIV是一个递减的计数器,用PRL的数据装载,每次归零后重新装载,通过读取DIV的当前值,可以获得更精确的时间,比如DIV的当前值为3276,说明还有(3276/32767=0.1s)完成一个周期,说明这个周
[单片机]
STM32学习笔记之ADC
一、基础知识 1. 18个通道,可测16个外部和2个内部信号源,可设置成单侧、连续、扫描、间断模式执行 2. 12位精度 3. 扫描模式,通道0到通道n的自动转化 4. 自校准 5. 按通道配置采样时间 6. 间断模式? 7. 双ADC模式? 8. 供电要求2.4~3.6V 9. 输入范围0~3.6V 二、功能描述 1. 通道选择: STM32的每个ADC模块通过内部的模拟多路开关,可以切换到不同的输入通道并进行转换。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。 有2种
[单片机]
GD32代码移植STM32(一)
GAIWEI例子:GD32F103移植STM32F103 使用相同FLASH和管脚数量相同的芯片,例如GDF103C8T6移植STM32F103C8T6程序。虽然两个款芯片的寄存器地址以及架构基本相同。但是需要注意的是GD32F10x主频是108兆,但是STM32F10x主频是72兆。所以需要针对以RCC时钟进行修改。 1.先将芯片的选项进行修改:查找对应芯片。 2.将STM32的启动文件替换成GD的启动文件。 3.修改时钟相关配置。 打开stm32f10x.h文件,#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*! Time out for HSE start up
[单片机]