本文主要是介绍嵌入式初学 |①STM32F103C8自建模板用寄存器点LED(还有启动文件和ST-LINK),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
浅学了51的基本知识,现在记录一下STM32学习过程。
鄙人看的野火的教程,用的最小核心板STM32F103C8T6,板载一个led,接在PC13上。
- 首先安装和破解Keil
CSDN上教程很多,安装和破解一般也不会出问题。(小心注册机自带的音乐)
- 创建工程模板
先下载芯片包
MDK5 Software Packs
找到自己系列
下载完双击.pack文件,会自动找到电脑里Keil路径,安装就行
在Keil里面新建项目
选择路径
然后选自己的具体型号,我这里是F103C8
然后需要添加启动文件(.s文件)
商家给的资料包一般有,我这没有
stm官网里应该是这个地方
https://www.stmicroelectronics.com.cn/zh/embedded-software/stm32-standardperipheral-libraries.html
但是问题很大,首先图标和链接位置对不上
除了F0和F4,打开都是404,我谢谢你。
打开压缩包查找“startup”,或者按下面的路径来找,这里下载的是F4的,
后面终于下到了F10x的
链接:https://pan.baidu.com/s/1uW9Go_kn66PykIz31GPNXQ?pwd=uils
提取码:uils
简单来说,看flash大小
64K以下——ld
64K-128K——md
256K-512K——hd
细节可以看看C一下别的详解blog
我这里F103C8用md
然后终于可以在Keil里面添加了,双击source group1
文件类型选all,这里建议把启动文件复制到项目路径里,以免路径改名之后他找不到
然后右键source group1添加.c文件,我这里命名为main
再添加一个.h文件,命名为芯片型号
.h文件里看参考手册写寄存器映射,可去B站看教程学习。
.h文件如下
//寄存器映射#define PERIPH_BASE ((unsigned int)0x40000000)
#define APB1PERIPH_BASE PERIPH_BASE
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000) //本应是+ 0x18000,这样写方便取RCC的值#define RCC_BASE (AHBPERIPH_BASE + 0x1000)
#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)#define RCC_APB2ENR *(unsigned int*)(RCC_BASE + 0x18)#define GPIOC_ODR *(unsigned int*)(GPIOC_BASE + 0x0C)
#define GPIOC_CRL *(unsigned int*)(GPIOC_BASE + 0x00)
#define GPIOC_CRH *(unsigned int*)(GPIOC_BASE + 0x04)
.c文件如下
#include "stm32f103c8t6.h" //与刚刚创建的.h文件一致int main()
{while(1){//打开时钟RCC_APB2ENR |= (1 << 4);//先清零,再设置GPIOC为输出模式GPIOC_CRH &= ~((0x0f) << 20);GPIOC_CRH |= (1 << 20);//给低电平GPIOC_ODR &= ~(1 << 13);}
}//防止报错
void SystemInit(void)
{//空
}
- 烧录程序
用的ST-LINK V2
驱动下载:
STSW-LINK009 - ST-LINK, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 USB driver signed for Windows7, Windows8, Windows10 - STMicroelectronics
找到STM32开发板上原理图,或者看开发板背面
插线:
ST-LINK STM32
3.3V 3V3
GND GND
SWCLK CLK(TCLK)
SWDIO DIO(TMS)
我这里接上RST——RST但是之后download程序时也没法自动复位,得手动
驱动没问题的话 插上ST-LINK后灯常亮
进入设置
如果有些奇怪错误可以在target里面右边“ARM compiler”改成default version 5试试
没连RST选这个,再检查以下左上方选项卡“Flash Download”里面是否正常
完了ok,按一下开发板上复位键
历尽艰辛,点灯成功
这篇关于嵌入式初学 |①STM32F103C8自建模板用寄存器点LED(还有启动文件和ST-LINK)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!