百问7天物联网智能家居实战训练营提高班 —— STM32F103基于HAL库的移植与基本配置

主要内容为移植ST官方软件包以及编写底层驱动程序

 第一步:基础工程文件添加
● 新建自己的工程文件夹
需要官方的Driver、CMSIS、HAL库文件, 中断文件、系统配置文件、启动文件

首先将stm32cube软件包文件夹下的CMSIS以及STM32F1XX_HAL_Driver库文件复制到工程文件夹中的HAL文件夹中

移植HAL库的配置文件: 在STM32F1XX_HAL_Driver文件夹中打开Inc文件夹,将STM32F1XX_HAL_conf_template.h复制到项目文件夹中的core文件夹中并改名为STM32F1XX_HAL_conf.h。

移植系统配置文件:在CMSIS/Device/ST/STM32F1XX/Source/Templates中找到system_stm32f1xx.c文件以及CMSIS/Device/ST/STM32F1XX/Include中的其头文件system_stm32f1xx.h并复制到项目文件夹中的core文件夹。

移植启动文件:CMSIS/Device/ST/STM32F1XX/Source/Templates/arm中的startup_stm32f103xb.s复制到项目文件夹中的project文件夹中。

移植中断源文件和头文件:在软件包中找到project文件夹打开文件夹中的STM3210C_EVAL/Templates/Src将其中的stm32f1xx_it.c以及STM3210C_EVAL/Templates/Inc中的stm32f1xx_it.h文件复制到项目文件夹中的core文件夹中。

第二步:创建工程

打开keil mdk新建工程

● 工程里添加文件

由于项目是stm32最小系统只需要GPIO、中断和串口

 

 

● 设置 MDK 工程:
○ 编译器选择 version 5

 

○ 选择全局宏:
■ 使用 HAL 库的宏:USE_HAL_DRIVER
■ 使用处理器的宏:STM32F103xB
○ 选择 C99 Mode
○ 选择编译路径

 

首先需要创建main函数

为什么:观察启动文件startup_stm32f103xb.s的汇编代码,其中有一部分如下所示,大意为在调用main函数前会先调用SystemInit

下图为SystemInit定义,作用为将系统初始化,调用完后才会调用main函数
● 增加 main.c

 在项目文件夹中的app文件夹下创建main.c文件

 


main函数中必须要做的事情
● 对于ST处理器,且使用ST的HAL库的情况下,我们在main函数中必须要做的一件事情是初始化HAL库,即调用HAL_Init函数,这个函数中,做的事情是:
○ 1、使能内部Flash的预缓冲区;
○ 2、设置内核的中断组别;

○ 3、配置内核的滴答定时器; 

○ 4、设置系统时钟、总线时钟和外设时钟
○ 5、设置 Flash 的等待周期

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值