小熊座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中启动

在这里插入图片描述

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值