Hello, I’m Shendi
最近开整单片机,这里记录一下
我目前配置,最小系统板 STM32F103C6T6,ST-LINK V2
最小系统板,通电后PWR灯会亮,ST-LINK插上电脑后也会亮
PDD上买的,没有焊接的(就是有个洞被焊起来了),加起来不超过30块
ps:
ST-LINK是烧录器,用于将编写好的程序烧录进单片机
Keil 是编写程序的 IDE
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);
}
将这段代码烧写进去,然后按下单片机上的Reset键(重启),就会发现灯已经亮了,我的是绿色的灯
点灯方法只适用于 STM32F103C6T6或 STM32F103C8T6,因为是直接通过寄存器点亮,其余型号单片机可能内存地址不一样,可自行百度文章来源:https://www.toymoban.com/news/detail-404086.html
如果不同型号点灯可参考下一篇,通过GPIO点灯
下一篇:呼吸灯的实现文章来源地址https://www.toymoban.com/news/detail-404086.html
到了这里,关于最小系统板 STM32入门,点亮 LED 灯(STM32F103C6T6)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!