嵌入式初学 |①STM32F103C8自建模板用寄存器点LED(还有启动文件和ST-LINK)

本文主要是介绍嵌入式初学 |①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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/413191

相关文章

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

springboot启动流程过程

《springboot启动流程过程》SpringBoot简化了Spring框架的使用,通过创建`SpringApplication`对象,判断应用类型并设置初始化器和监听器,在`run`方法中,读取配... 目录springboot启动流程springboot程序启动入口1.创建SpringApplicat

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

python中os.stat().st_size、os.path.getsize()获取文件大小

《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

基于Java实现模板填充Word

《基于Java实现模板填充Word》这篇文章主要为大家详细介绍了如何用Java实现按产品经理提供的Word模板填充数据,并以word或pdf形式导出,有需要的小伙伴可以参考一下... Java实现按模板填充wor编程d本文讲解的需求是:我们需要把数据库中的某些数据按照 产品经理提供的 word模板,把数据

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情