10、stm32F103入门学习--点亮LED(库函数配置)

这节课开始正式进入库函数学习。
回顾在上几节知识,从最开始的寄存器配置到函数操作,添加了启动文件、stm32f10x_gpio.c、stm32f10x_gpio.c和stm32f10x.h。

在实际库函数操作中需要添加更多的文件(参考野火教程)。

1、启动文件

startup_stm32f10x_md.s

完成初始化功能,包括设置堆栈指针、初始化中断向量表等等。如果是初学32的学员了解即可,如果打算往嵌入式方向发展的学员要认真学习。

2、时钟配置文件

system_stm32f10x.c,以前讲过我们是VIP服务,每个引脚都要相对应的时钟服务,所以把这些关于时钟的函数专门集成在这个函数里。

3、内核相关

core_cm3.c:内核外设的驱动固件库
core_cm3.h:实现内核外设的寄存器外设
这两个文件一般是不需要去使用,跟内核有关。有的学员会觉得外设不就是LED、数码管、液晶屏吗。不是的,一个芯片有内核和外设之分。就好像一个苹果,里面还有核和肉之分,核是统一的,肉可以不一样。就像我们的stm32f103,内核是由arm公司统一授权,生产stm32公司就是其中一家被授权使用。等会儿要讲的外设就是stm32公司自己设计的。

stm32的每个引脚基本都能实现定时,所以需要专门的文件去管理这些中断。

misc.h
misc.c

SysTick也在这个文件中定义,以后讲。

4、外设相关

stm32f10x.h实现内核之外的外设寄存器的映射。
我们接触到的第一个是stm32f10x_gpio.c和stm32f10x_gpio.h,其实还有USRAT、SPI等等。如USRAT用stm32f10x_usrat.c和stm32f10x_usrat.h来表示,抽象出来就是

stm32f10x_usrat.c和stm32f10x_usrat.h

5、头文件配置

因为有总多外设,每个外设都有相应的头文件和源文件,把所有的头文件组成一个大的头文件。

stm32f10x_conf.h

里面有
stm32f10x_usart.h、stm32f10x_i2c.h、stm32f10x_spi.h、stm32f10x_dac.h等

6、中断服务函数

stm32功能之所以强大是因为每个引脚能产生中断,所以需要专门的文件去管理。

stm32f10x_it.h
stm32f10x_it.c

分析完所需的文件后开始搭建库函数操作平台。
官方给我们提供了固件库,相当于原材料,我们利用这些原材料做我们自己的菜。

新建文件夹,还是命名为“template”,里面新建四个文件夹,如图。
在这里插入图片描述
将固件库中的
C:\Desktop\【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

core_cm3.h和core_cm3.c

复制到我们文件夹中的
C:\Desktop\template\Libraries\CMSIS
将固件库中的所有文件
C:\Desktop\【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
复制到C:\Desktop\template\Libraries\CMSIS

在这里插入图片描述打开startup,删除如下图三个文件夹。
在这里插入图片描述
将固件库中的
C:\【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\Libraries的STM32F10x_StdPeriph_Driver文件夹,复制到
C:\Desktop\template\Libraries。

将固件库中的
在这里插入图片描述
复制我们自己文件夹中的User目录下。

在我们自己文件夹中的User中新建main.c,输入程序。
在这里插入图片描述
在这里插入图片描述

打开Keil,新建工程到“project”文件夹。
在这里插入图片描述下面步骤基本跟以前一样,完成到如下图。
在这里插入图片描述
在左侧的“Target1”中右键,选择下图中的红色框部分。

在这里插入图片描述弹出如下图所示。
在这里插入图片描述
修改至如下图所示,然后选中“STARTUP”,点击箭头所指。
在这里插入图片描述
定位到我们自己新建文件夹下的arm文件夹,发现里面是空的。
在这里插入图片描述
在文件类型里面选择(.),选择我们的启动文件。
在这里插入图片描述
可以看到在STARTUP后多了文件。
在这里插入图片描述
同理在CMSIS里添加“core_cm3.c”和system_stm32f10x.c。
在这里插入图片描述
在FWLIB里添加我们自己夹下的
C:\Desktop\template\Libraries\STM32F10x_StdPeriph_Driver\src的所有文件,如下图。
在这里插入图片描述
在USER下添加“main.c”和“stm32f10x_it.c”。
在这里插入图片描述
点击ok,回到了Keil主界面,看左边的框就是我们刚才操作的。
在这里插入图片描述总结下:我们在添加的都是源文件,也就是.c的文件。因为一般头文件和源文件都是成对出现,编译源文件后会自动加载头文件,这是因为我们在写源文件时第一句就是包含自家的头文件。

但是我们要加载头文件路径,不然编译器不知道去哪找对应的头文件,至少告诉人家路怎么走。

点击“魔术棒”,弹出如下对话框,选择“C/C++”,点击②处。
在这里插入图片描述
添加哪些路径呢,比如CMSIS下有头文件,所以要把这个路径添加。
在这里插入图片描述
点击①处,出现对话框,将文件定位到“CMSIS”,确定。
在这里插入图片描述
完成后如下图。
在这里插入图片描述
在下图中添加框中内容,箭头所指是逗号,一定要在英文状态下输入,为防止大家输入错误,可以复制我的。

USE_STDPERIPH_DRIVER,STM32F10X_MD

在这里插入图片描述
确定以后,编译程序。
在这里插入图片描述

出现一个警告,双击上图中的第一个框。将光标闪烁放到最后,由于是截图看不到,就是箭头所指位置。
在这里插入图片描述
再次编译, 0 Error(s), 0 Warning(s)。
在进行相关的设置,如下图,那么以后基本可以用这个模块了,大家最好自己亲手做一次,以后直接拿来可以用了!
在这里插入图片描述

在这里插入图片描述

  • 21
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值