文章目录

  • 1- 三色LED灯介绍
  • 2- 创建项目
  • 3- 配置使能CPU外部晶振
  • 4- 配置LED连接的管脚
  • 5- 生成代码修改生成可执行文件
  • 6- 串口ISP烧录
  • 7- ISP串口烧录原理

最近开始学习单片机开发,记录一下自己的学习,巩固一下
相关软件和驱动链接: 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中启动

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

小熊座KE1开发板点亮LED三色灯相关推荐

  1. 沁恒CH582M开发板--点亮LED

    硬件准备 1.源地CH582M核心板开发板 RISC-V沁恒WCH蓝牙BLE5.3双路USB 2.双向usb接口/usb-typec数据线 软件准备 1.IDE:mouneriver: http:// ...

  2. 沁恒CH582M开发板-1-点亮LED

    CH582-1-点亮LED 硬件准备 沁恒CH582M-R0-1V0开发板 USB-TTL模块 软件准备 CH582M是wch自研的 青稞RISC 处理器 WCH RISC-V4A,所用的开发环境也是 ...

  3. 嵌入式开发板01---点亮LED

    开发板设置 将启动方式选择为从USB启动,通过串口和USB与电脑相连.在电脑上安装USB的驱动.利用dnw软件将程序下载进开发板.具体的流程请看朱有鹏老师的讲解视频. 下面总结一下整个编写流程: 假定 ...

  4. STM32F 103C8T6开发板 点亮LED灯

    每组IO口含下面7个寄存器.7个寄存器可以控制一组GPIO的16个IO口. GPIOx_CRL:端口配置低寄存器 GPIOx_CRH:端口配置高寄存器 GPIOx_IDR:端口输入寄存器 GPIOx_ ...

  5. 嵌入式开发板02---点亮LED升级版

    LED汇编的复杂编写 首先,每次地址的输入都需要自己输入,非常容易输入错误,所以使用宏定义: #define GPJ0CON 0xE0200040 同时在编写的汇编程序进行make时会有警告,找不到_ ...

  6. 官方 STM32F303ZE Nucleo-144开发板 点亮led

    1.安装mdk5 和对应的mdk开发包 开发包地址:https://www.keil.com/dd2/pack/ 2.安装CubeMX和对应的开发包 led点亮  PB7 是LED2 蓝色 PB14 ...

  7. 野火霸道STM32开发板点亮LED灯课后作业

    #include "stm32f10x.h" int main(void) {     //打开GPIOB端口的时钟     *(unsigned int *)0x40021018 ...

  8. 使用Arduino开发板点亮RGB全彩LED灯

    使用Arduino开发板点亮RGB全彩LED灯 我们将了解什么是RGB全彩LED灯以及如何使用Arduino开发板点亮它. 什么是RGB LED灯? RGB LED灯可以通过混合红色.绿色和蓝色这三种 ...

  9. firefly-rk3288开发板Linux驱动——LED驱动

    本文主要介绍三个部分的内容:一.准备SDK源码 二.如何操作GPIO 三.LED设备驱动的实现.由于firefly官方一直在对源码进行更新,所以本文只以我正在用的版本介绍.此外,官方提供的下载工具版本 ...

最新文章

  1. 【数据库】sqlite3数据库备份、导出方法汇总
  2. 无限极分类原理与实现
  3. 数据增强_开源算法FMix:用于深度学习中增强混合样本数据增强
  4. 26期20180703 正则 grep
  5. @程序员,让8年京东架构师为你解析云原生监控和日志解决方案!
  6. python实现海康sdk二次开发,移动侦测事件(二)
  7. 计算机网络路由交换技术运用,计算机网络路由交换的技术应用与发展趋势研究...
  8. 帝国军师--约森·梅尔沃德(微软技术总监)
  9. linux进程线程-alarm闹钟函数
  10. 2020年高处安装、维护、拆除答案解析及高处安装、维护、拆除作业模拟考试
  11. 【降维打击】解决加密视频录屏问题
  12. 积化和差、和差化积公式及记忆
  13. 【全网首发】电脑搜索不到部分WiFi怎么办?亲测有效!
  14. python引流脚本开发工具_Python脚本 抖X自动关注粉丝引流脚本
  15. BGA封装扇出过孔-BGA芯片的布局布线技巧
  16. DYNAMIC MOVEMENT PRIMITIVES PART 1: THE BASICS
  17. 整流器的输入滤波电容的选择
  18. 基于javaweb+jsp的个人日记管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)
  19. js获取元素width和height
  20. Android 用Groovy实现扇贝阅读APP的自动阅读功能

热门文章

  1. linux心跳包检测代码_Socket心跳包机制
  2. 人工智能--预训练的卷积神经网络
  3. java 输入控制_java控制台输入
  4. 求6+66+666+6666+66666。(10分)(JAVA)
  5. UI自动化测试AutoIT工具使用
  6. 用C语言编制查询某班同学的平均成绩
  7. 海滩在室内?虚拟现实创建的治愈世界
  8. 12月钓鱼网站简报:新网数码占比超52% 涨幅明显
  9. 老外最常说的二十句钻石级英语
  10. 为什么服务器刷微信后反复重启,就在刚刚!微信又挂了!有人卸载重装、有人重启手机……好捉急!...