(二)STM32基础——新建基于寄存器的工程模板

        上次介绍了一下建立基于固件库的工程模板,这次来介绍一下新建基于寄存器的工程模板,因为两者有许多相似之处,所以就简单介绍一下。

        首先在新建一个 TEST 的文件夹,然后在 TEST 文件夹里面新建 USER 文件夹,将工程名字设为 test,保存在这个 USER 文件夹里面,之后,弹出选择器件的对话框。 因为 ALIENTEK 探索者 STM32F4 开发板所使用的 STM32 型号为 STM32F407ZGT6,所以在 这里我们选择 STMicroelectronics --> STM32F4 Series --> STM32F407 --> STM32F407ZG。

这个和之前是类似的,学会了建立基于固件库的工程模板,这个也就会了


        到这里,我们还只是建了一个框架,还需要添加启动代码,以及.c 文件等。 ST 公司为 STM32F40x 和 STM32F41x 系列的 STM32F4 提供了一个共同的启动文件,名字 为:startup_stm32f40_41xxx.s。我们开发板使用的是 STM32F407ZGT6,属于 STM32F40x 系列 里面的,所以直接使 startup_stm32f40_41xxx.s 这个启动文件即可。不过这个启动文件,我们做了一点点修改,具体是 Reset_Handler 函数,修改后的这个启动文件在开发板光盘 --> 4,程序源码 --> STM32 启动文件 文件夹里面, 这里我们把这个 startup_stm32f40_41xxx.s 拷贝到刚刚新建的 USER 文件夹里面。 在图 3.2.5 中,我们找到 Target1 --> Source Group1 --> 双击 --> 设置打开文件类型为 Asm Source file --> 选择 startup_stm32f40_41xxx.s --> 点击 Add,如图 所示:


        我们在汇编代码里面使能了 FPU,所以在 MDK 里面,我们也要设置使用 FPU, 否则可能代码会无法运行,设置方法如下:选择 Options for Target ‘Target1’,打开 Target 选 项卡,在 Code Generation 里面,选择 Use FPU,如下图所示:


        这里,我们不用 MDK5 自己生成的这两个文件夹来存放中间文件,而是在 TEST 目录下新 建一个新的 OBJ 文件夹来存放这些中间文件。这样,USER 文件夹专门用来存放启动文件 (startup_stm32f40_41xxx.s)、工程文件(test.uvprojx)等不可缺少的文件,而 OBJ 则用来存放 这些编译过程中产生的中间文件(包括.hex 文件也将存放在这个文件夹里面)。然后把 Listings 和 Objects 文件夹里面的东西全部移到 OBJ 文件夹下(当然要先关闭 MDK 软件)。整理后效果如图 所示:

这个和之前是类似的,学会了建立基于固件库的工程模板,这个也就会了。


        由于上面我们还没有任何代码在工程里面,这里我们把系统代码 COPY 过来(即 SYSTEM 文件夹,该文件夹由 ALIENTEK 提供,可以在光盘任何一个实例的工程目录下找到,不过不要 拷贝错了!不要把库函数代码的系统文件夹拷贝到寄存器代码里面用,反之亦然!这些代码在任何 STM32F40x/STM32F41x 的芯片上都是通用的,可以用于快速构建自己的工程,后面会有 详细介绍)。完了之后,TEST 文件夹下的文件如图所示:


        之后在USER文件下新建一个.c文件,将基础代码复制过去,具体如下图所示:

#include "sys.h"
#include "usart.h" 
#include "delay.h" 
int main(void)
{ 
u8 t=0;
Stm32_Clock_Init(336,8,2,7);//初始化时钟为 168Mhz
delay_init(168); //初始化延时函数
uart_init(84,115200); //串口初始化为 115200
while(1)
{
printf("t:%d\r\n",t);
delay_ms(500);
t++;
}
}

        接下来添加头文件路径,具体方法和之前差不多,有一点点变化,具体内容如下所示:

        按照上面的步骤进行以后,基于寄存器的工程模板就算建立完成了,相比于建立基于固件库的工程模板,建立基于寄存器的工程模板相对简单一点,但也是有点麻烦,还是和之前一样,以后建立工程模板的时候,直接拿来用就行。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值