IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 小熊座KE1开发板点亮LED三色灯 -> 正文阅读

[嵌入式]小熊座KE1开发板点亮LED三色灯


最近开始学习单片机开发,记录一下自己的学习,巩固一下
相关软件和驱动链接: https://pan.baidu.com/s/1mnhaeWkYKaFWqcolKqk4FA
提取码:6u81
这是小熊座开发板,STM32L433CBT6芯片
在这里插入图片描述

1- 三色LED灯介绍

RGB LED二极管有四个引脚,它把3个普通led被封装在其内部,这三个led颜色分别为红、绿、蓝三种颜色,通过控制各个LED的亮度,你可以混合出几乎任何你想要的颜色。
开发板上只有一个灯,连接的PB5,PB6,PB7三个管脚,都是通过1k的电阻连接到3.3V的电压上,然后连接发光二极管,发光二极管产生压降才会工作。3.3V-3.3V不工作,3.3V-0V工作
如何控制灯亮,就是CPU控制输出一个高电平或者低电平让发光二极管产生压降才会工作。
在这里插入图片描述

来介绍一下LED二极管共阳极二和共阴极
RGB LED也分共阴极和共阳极:
共阴极:把所有负极端全部接一块接负极,即公共端为负极。
共阳极:把所有正极端全部接一块接正极,即公共端为正极。
在这里插入图片描述

共阳极公共端接阳极,低电平有效(灯亮), 共阳极数码管内部发光二极管的阳极(正极)都联在一起,此数码管阳极(正极)在外部只有一个引脚;
共阴极公共端接阴极,高电平有效(灯亮),共阴极数码管内部发光二极管的阴极(负极)都联在一起,此数码管阴极(负极)在外部只有一个引脚;
在这里插入图片描述

2- 创建项目

安装使用STM32CubeIDE

  • 解压缩出来的安装文件存放路径不能包含中文,否则不能开始安装;
  • STM32CubelDE的安装路径一定不能有中文,否则程序可能运行异常;
  • STM32CubelDE创建的项目存放路径不能有中文,否则程序不能烧录;
  • STM32CubelDE 创建的项目存放路径不能是分区顶层(如D:/、E:/),否则不能编译;
  • Win10登录系统用户名不能为中文,否则项目开发时会出错;

打开之后创建STMproject会看到如下,选择STM32L433CBT6,感兴趣的可以了解一下具体的介绍。
在这里插入图片描述

保存位置,默认的位置你安装的时候就已经设置了,可以自己改也可以默认。
在这里插入图片描述

3- 配置使能CPU外部晶振

晶振是电路中常用用的时钟元件,全称是叫晶体震荡器。
基本构成: 石英晶体经精密切割磨成需要的薄片,并镀上电极焊上引线做成。
主要作用: 在各种电路中,产生震荡频率的元器件(频率越高,单片机运行的速度越快)
在这里插入图片描述在这里插入图片描述
看到原理图,圈出来的是8MHZ的晶振,CPU工作在80MHZ,就需要时钟源,就需要晶振10倍频变成80MHZ
可以看到CPU内部有一个16MHZ的内部晶振,为什么还需要外部的呢?因为有误差,会产生零飘。
STM32单片机的时钟可以由以下3个时钟源提供:
1、HSI:高速内部时钟信号STM32单片机内带的时钟 (8M频率), 精度较差。
2、HSE:高速外部时钟信号,精度高。
来源:i. HSE外部晶体/陶瓷谐振器(晶振);ii.HSE用户外部时钟
3、LSE:低速外部晶体 32.768kHz 主要提供一个精确的时钟源 一般作为RTC时钟使用。

具体了解点击这篇文章

在这里插入图片描述

4- 配置LED连接的管脚

GPIO(general porpose intput output):作为通用的功能输入输出使用
LED上面看到三个管脚分别是PB5,PB6,PB7,将他们设置为output,因为对于cpu而言,他要输出高电平或者低电平来控制。
在这里插入图片描述

将每一个管脚默认设置为高电平,因为默认高电平为不亮
在这里插入图片描述

5- 生成代码修改生成可执行文件

完成之后按住Ctrl+s生成代码或者按左上角的锤子
在这里插入图片描述

在whlie(1)中的 /* USER CODE BEGIN 3 /和 / USER CODE END 3 */之间输入如下代码,否则无效,然后保存点击锤子,显示0错误0警告
在这里插入图片描述

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);
	  HAL_Delay(500);
	  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);

	  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);
	  HAL_Delay(500);
	  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);

	  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET);
	  HAL_Delay(500);
	  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET);

  }

在保存项目的文件夹下可以找到.elf文件,这个就是需要烧录的文件,是linux下常用的可执行文件格式。
在这里插入图片描述

编译生成的可执行文件必须烧录到开发板上才能运行,我们这次讲的是串口ISP烧录。

6- 串口ISP烧录

BearKE1开发板上TypeC USB接口,除了给开发板提供电源以外,还使用CH340芯片提供了一个USB转串口设备,同时该USB转串口芯片连接到了CPU的UART1管脚上,这样我们就可以使用该接口来将STM32CubeIDE编译生成的可执行程序烧录到开发板上。
需要STM32CubeProgrammer软件,在网盘里面有。
Windows一般支持CH340 USB转串口芯片驱动,如果支持网盘里面有,下载之后解压缩了就找到setup进行安装就可以了。
在这里插入图片描述

TypeC连接开发板和PC,然后上电,然后寻找设备,打开设备管理器找到端口
在这里插入图片描述
在这里插入图片描述

接下来,我们按住开发板的MCU_BOOT按键,同时再按一下MCU_RST按键让系统复位,再松开MCU_BOOT按健此时开发板将进入到ISP串口烧录模式。
在这里插入图片描述

然后进入STM32CubeProgrammer进行连接,如下就点击connect
在这里插入图片描述

连接成功
在这里插入图片描述

然后点击open file将.elf文件选中
在这里插入图片描述

记住一定要点击Download
在这里插入图片描述

然后复位按钮,MCU-RST按一下就可以了
在这里插入图片描述

7- ISP串口烧录原理

到上面说的就已经全部结束了,现在讲一讲ISP串口烧录原理
在小熊座开发板中,启动方式受到两个管脚的控制,BOOT1和BOOT0。
BOOT1接了100K的电阻接到了地上,已经默认设为0了,所以我们只能从上两种模式
在这里插入图片描述
在这里插入图片描述
① Main Falsh memory, 即 STM32 CPU 内置的64KB Flash。我们通过各种方式烧录(串口、ST-Link等)的目的就是将程序烧录到这这片区域,这样系统上电时默认会从这里启动;

② System memory,这是STM32 CPU内置的一片ROM,出厂后无法修改。STM32在出厂时,由ST在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,通过该程序我们可以使用串口、ST-Link等方式来烧录;

③ Embedded SRAM ,即 STM32 CPU 内置的20KB SRAM,这个模式一般用于程序调试。假如我们在调试过程中只修改了代码中一个很小的不复,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码,用于快速的程序调试,等程序调试完成后,再将程序下载到Flash中。不过这种模式我们很少用到。

现在我们需要我们的BOOT0是1,就可以从ISP串口进行烧录。
过程就是:
1、在CPU启动或者复位的时候按下MCU_BOOT管脚进入串口烧录模式
2、通过串口下载程序到Flash中
3、程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动

在这里插入图片描述

纯属笔记,如有错误还请指出~

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:31:28  更:2022-10-22 21:34:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 13:18:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码