• 最小系统板 STM32入门,点亮 LED 灯(STM32F103C6T6)


    Hello, I’m Shendi

    最近开整单片机,这里记录一下


    我目前配置,最小系统板 STM32F103C6T6,ST-LINK V2

    最小系统板,通电后PWR灯会亮,ST-LINK插上电脑后也会亮

    PDD上买的,没有焊接的(就是有个洞被焊起来了),加起来不超过30块

    ps:
    ST-LINK是烧录器,用于将编写好的程序烧录进单片机
    Keil 是编写程序的 IDE
    
    • 1
    • 2
    • 3

    ST-LINK与最小系统板连接

    实物图
    在这里插入图片描述
    其中ST-LINK有八个引脚,上面都标出了对应的作用了,一般用3.3V就可以了,SWDIO与SWIO相连,其余连接一致即可(四根线都插上)

    接完后,这时将ST-LINK插入电脑USB口,即可看到单片机与ST-LINK亮起



    ST-LINK驱动安装

    在安装完 keil5 后,keil的安装目录下有 ARM/STLink/USBDriver

    双击其中 dpinst_adm64.exe 即可安装驱动

    32位则点击 dpinst_x86.exe

    在这里插入图片描述

    装完后,插上ST-LINK,即可在设备管理器里看到有 STM32

    在这里插入图片描述

    Keilv5 新建项目

    在这里插入图片描述
    New uVision Project,输入名称,保存,会弹出 Select Device for Target… 窗口,看窗口左下方有没有 STMicroelectronics,或者在 Search中输入单片机型号,例如我的 STM32F103C6T6(只有STM32F103C6)

    如果有则直接选择,没有就需要手动下载芯片包了

    下载芯片包

    进入 https://www.keil.com/dd2/pack/ 下载芯片包,往下滑,找到 Keil,然后找到其中的带STM32的

    例如我的 STM32F103,找到了 STM32F1,下载即可,网速慢可以科学上网下载

    根据前缀来下载对应的芯片包 STM32F0 则下载 STM32F0 的

    在这里插入图片描述
    在这里插入图片描述

    下载完后是一个后缀为pack的文件,将其复制到 keil 的 pack/.Download 文件夹

    打开 keil,点击 Pack Installer

    在这里插入图片描述

    点击 file - import 导入下载的芯片包,看右下角,等待完成即可

    完成后再新建项目就有 STM32 对应的芯片包可以选择了,选择自己类型的,下一步,OK,创建完成

    我的是 STM32103C6T6 就选择了STM32103C6


    配置项目

    点击option for target,配置
    在这里插入图片描述
    弹出的窗口点击 debug,右边的 use 选择 ST-LINK Debugger,有可能弹出更新 ST-LINK 窗口,我直接点了更新了

    在这里插入图片描述

    在接好ST-LINK+单片机后,电脑插上ST-LINK,点击Settings

    这个时候可以在右边看到 id

    如果显示 No Target Connect 则检查线是否接对了,我刚开始没接对就出现了这样的问题

    如果确认线接对了,可以尝试一直按下单片机上的 Reset 按钮,然后再点击 Setting 看看是否有连接

    在这里插入图片描述
    点击 Output,勾选 Create HEX File,这样就可以生成 hex 文件

    在这里插入图片描述

    点击 Manager Run-time

    在这里插入图片描述

    勾选 CMSIS 的 CORE 和 Device 的 StartUp

    其余根据需要勾选


    ST-LINK烧写

    ST-LINK上的LED灯有几种颜色,分别代表

    • LED 闪烁红色:STLink 已经连接至计算机。
    • LED 保持红色:计算机已经成功与 STLink 建立通信连接。
    • LED 交替闪烁红色绿色/蓝色:数据正在传输。
    • LED 保持绿色/蓝色:最后一次通信是成功的。
    • LED 为橘黄色:最后一次通信失败。

    新建一个文件为 Test.c,代码如下

    在这里插入图片描述

    当ST-LINK连接没问题时,我们可以先 build,然后再点 download,发现ST-LINK红灯和蓝灯闪烁了,看keil内日志,程序下载完成

    在这里插入图片描述


    点灯

    我的板子上大概有两个 LED 灯,一个 PWR(电源灯,接通就亮红灯),电源对面的 PC13(板子上有标记)

    网上找了个简单的方法,直接修改地址来点灯

    LED正极已经接3.3V,因此只需要我们控制PC13输出0V(低电平),就可以点亮LED

    代码如下

    int main()
    {
    	*(unsigned int *)0x40021018 |=(1<<4);
    	*(unsigned int *)0x40011004 &=~(1111<<(4*5));
    	*(unsigned int *)0x40011004 |=(1<<(4*5));
    	*(unsigned int *)0x4001100C &=~(1<<13);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    将这段代码烧写进去,然后按下单片机上的Reset键(重启),就会发现灯已经亮了,我的是绿色的灯

    在这里插入图片描述
    点灯方法只适用于 STM32F103C6T6或 STM32F103C8T6,因为是直接通过寄存器点亮,其余型号单片机可能内存地址不一样,可自行百度

    如果不同型号点灯可参考下一篇,通过GPIO点灯
    下一篇:呼吸灯的实现

  • 相关阅读:
    如何快速上手短视频创作,有什么建议吗?
    金仓数据库 KingbaseES 插件参考手册 pldbgapizw33
    【牛客网】OR63 删除公共字符串
    国密SSL证书保障网站安全
    小程序 多个同时选择器
    使用git上传代码至gitee入门(1)
    主机安全防护五大难点攻克
    软件测试——从0开始的ios自动化测试(二)
    TensorFlow 介绍 及其简单应用 附实例
    基于Unity3D实现的HitUFO鼠标打飞碟游戏
  • 原文地址:https://blog.csdn.net/qq_41806966/article/details/126894938