stm32第二节:新建工程(寄存器版)

新建工程(寄存器版)

前言

在介绍本节课程之前,先介绍取消代码的形式:

第一种,我们可以使用下图形式进行代码的取消;

//#include <reg52.h>

//sbit LED=P0^0;

//void main(void)
//{
//	P0=0xFE;    //总线操作
//	
//	LED=0;      //位操作
//}

         但是我们可以通过#if 0 ……#endif进行取消,这是一个条件编译指令,表示如果条件为0(假),则编译器会忽略之间的代码块,即#if 0和#endif之间的代码不会被编译。这种方式可以用来暂时注释掉一段代码,而不需要删除它们。

#if 0

#include <reg52.h>

sbit LED=P0^0;

void main(void)
{
	P0=0xFE;    //总线操作
	
	LED=0;      //位操作
}

#endif
//专业操作

再转到我们所学的stm32,观察文件类型:

如图所示,axf文件是通过仿真器下载到stm32板子上的,hex文件是通过串口传输。

建立工程模板

        对于stm32的学习,如果有51单片机基础的加持,在51单片机学习的基础上,类比写出stm32的第一个文件。接下来我们一起建立一个新的stm32的project模板。

 建立头文件(寄存器定义

        在51中,我们通过引用头文件.h的形式来调用我们所需要的函数,库。而在stm32中,我们也可以先建立一个stm32f10x.h头文件,但是我们初学者来说,在这个头文件里我们先什么都不用写,并且在main.c的首行。

#include "stm32f10x.h"

建立main.c文件

        在Source Group 1中新建一个main.c文件,作为主函数存放文件。

,并写出main框架:

#include "stm32f10x.h"

int main(void)
{

}

调用启动文件

        从资源包或者百度中找到我们所需的资源包,我们这里所需的是startup_stm32f10x_hd.s。

        在startup_stm32f10x_hd.s启动文件中,通过IMPORT关键字引用 SystemInit,但是我们没有该定义,所以我们应该在主函数下面进行函数声明(但是在该函数中什么都不用写,只是为了骗过编译器不报错):

void SystemInit(void)
{
	//函数体为空,目的是为了骗过编译器不报错
}

        到这里,我们的首个工程文件就算是配置完成了。

总代码

#include "stm32f10x.h"

int main(void)
{

}

void SystemInit(void)
{
	//函数体为空,目的是为了骗过编译器不报错
}

总结

        本节课我们学习了通过寄存器配置去建立一个工程,下节课具体讲通过这个模板如何编写程序控制IO口使得LED灯亮起三原色。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值