前言

C语言的学习一般都是从单文件工程起步,掌握基础语法后逐步引入多文件项目‌。所以工程的创建以及main.c文件的创建就是学习C语言的第一步,这个章节就介绍下使用Keil uVision5嵌入式系统集成开发环境创建C语言工程,由于C语言基础开发入门系列文章只是介绍使用C语言编程,所以不需要真实的单片机硬件连接,调试就采用模拟仿真方式,不需要与硬件下载器连接。
在Keil5开发环境软件下开始学习C语言还需要两步,1:创建C语言工程 2:添加main.c文件,有了这两步,就可以进行C语言的代码编写与调试了。
这里的C语言工程就是用Keil5创建的代码工程,里面包含了系统文件,启动文件,库文件,编译调试界面等,我们常说的编译与调试就是对创建的代码工程进行编译与调试。

一、手把手创建Keil5的C语言代码工程

双击Keil5图标,打开Keil5软件。
在这里插入图片描述
打开软件之后,如下图所示,创建一个新的工程。
在这里插入图片描述
保存工程名,名字最好采用英文。
在这里插入图片描述
选择内核,选择ARMCM3,就是Cortex M3核,主流的单片机是这个内核。
在这里插入图片描述

选择系统文件,选择CMSIS->CORE,同时选择Device->Startup。
在这里插入图片描述
系统文件选择好后,左边窗口就会有显示。
在这里插入图片描述
如下图所示,添加微库功能,这样Keil5就可以包含malloc内存分配、printf调试输出等常用功能。
在这里插入图片描述

如下图所示,选择Use Simulator,用于在无硬件环境下模拟嵌入式程序运行,帮助开发者调试代码逻辑。
在这里插入图片描述
经过以上步骤,Keil5的C语言工程就创建好了,就可以用过添加main.c文件,进行C语言学习与调试了。

二、创建main.c文件

新的C语言代码工程创建好之后,就可以添加main.c文件了。
如下图所示,创建新的main.c文件。
在这里插入图片描述

如下图所示,我们拷贝原先写好的代码段到main.c。
代码段如下:

#include <stdio.h>//系统输入输出头文件
 
#define ITM_PORT8(n)         (*(volatile unsigned char *)(0xe0000000 + 4*(n)))//printf函数需要
int fputc(int ch, FILE *f)//定义字符输出的文件操作函数printf函数
{
    ITM_PORT8(0) = ch;
    return ch;
}
int main(void)
{
	printf("Hello, World!\n");//在调试窗口打印"Hello,World"字符串
  return 0;
}

拷贝原先写好的代码段到main.c,并保存。
在这里插入图片描述

如下图所示,保存main.c到工程目录下。
在这里插入图片描述

如下图所示,工程中添加main.c,这样编译的时候,就会把main.c加载进去了。
在这里插入图片描述
如下图所示,选择main.c添加到工程。
在这里插入图片描述
如下图所示,main.c添加到工程成功。
在这里插入图片描述

main函数详解

C语言中的main函数是程序的唯一入口点,程序执行总是从这里开始,最终也在这里结束。所以我们通常查看C语言的代码,首先就是找到main函数,main函数大括号里面就是顺序执行的代码。

int main(void)
{
   return 0;
}

上面就是main函数的写法,int意思是返回数据类型是整数,也可以是void。void是一个特殊的关键字,意思为"无"或"空。圆括号里的void代码表示该函数不需要任何参数。
main函数里的大括号代表大括号内的所有代码都属于该函数,每个开括号 { 必须有对应的闭括号 }。
return 0,代表程序执行完毕,跳出main函数,并返回数值0。

三、调试C语言代码工程查看结果

main.c文件添加好之后,就是编译调试了。

如下图所示,编译代码工程,编译成功,没有错误。如果有错误,需要排查错误原因,否则不能进行下一步的调试。
在这里插入图片描述
如下图所示,点击按钮,就可以进入仿真调试界面。
在这里插入图片描述
如下图所示,进入调试界面,程序光标会自动运行到main函数处,光标在哪一行,就说明程序运行到哪一步。
在这里插入图片描述
如下图所示,查看printf打印界面。
在这里插入图片描述
下图就是printf打印界面。
在这里插入图片描述

如下图所示,调试运行,查看运行结果。
在这里插入图片描述

代码链接下载:
C语言基础开发入门系列所有代码链接

四、STM32单片机工程的main文件

我们STM32单片机工程的实际main文件以及main函数如下:
在这里插入图片描述

main.c文件,一般也都会包含驱动相关的头文件。
在这里插入图片描述

总结

工预先善其事必先利其器,磨刀不误砍柴工,所以经过上述Keil5的C语言代码工程以及main文件的创建添加,就可以边学习理论,边调试验证理论结果,大大提高效率,接下去就可以学习C理论知识并调试验证结果了。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐