keil5的代码不是以小段程序或者一个文件,而是一整个工程,如下图:

我们以旧版的宠物喂食系统为例,给大家讲一下程序的构成:

1.USER文件夹

左边的文件树中,第一个USER文件夹下面放的是用户代码,包括main.c主程序,it.c中断和system系统程序,main.c是我们主要去看的,另外两个是系统的中断和设置总线时钟的,这个了解即可。
2.HARDWARE文件夹

HARDWARE是我们存放外设驱动的文件夹,里面有要使用的传感器模块、驱动模块等待,比如下面的led.c就是指示灯、oled.c就是显示屏、exti.c是外部中断、key.c是按键、usart.c就是串口通信(蓝牙或者wifi)、dht11.c就是温湿度传感器、server.c是电机程序。
这个大家知道对应的原理,在主程序里面懂得如何调用就可以了,如果要详细了解每个模块的驱动原理,可以看资料里面的模块资料,那里各个模块的技术文档和讲解视频
3.SYSTEM文件夹

这个里面是存放系统级的一些函数,比如delay.c演示,sys.c包含位操作等等。当然有的时候usart.c也会放在这个里面
4.CORE文件夹

core_cm3.c这个是CMSIS核心文件,提供进入M3内核接口,这个是ARM公司提供的,对所有CM3内核芯片都一样,你不需要对这个东西做修改,我们仅做介绍点到为止。
startup_stm32f10x_hd.s(有的是md.s)这个是启动文件,启动文件主要是进行堆栈之类的初始化,中断向量表以及中断函数的定义。引导进入main函数,这个大家仅作了解即可。
5.FWLIB文件夹

这个里面是STM32固件库源码文件。我们在建立工程的时候都会用到,这个是库函数编程的支持文件
总结
以上红字高亮的部分就是大家需要着重去看的内容,比如你需要把代码粘贴在文章的附录里面,就找到main.c去复制,如果研究代码的运行过程,就去看main.c函数和HARDWARE中的模块函数调用
当然由于我们工作室不同的技术开发习惯可能不同,这个结构不一定和前面的截图一模一样,比如有的驱动写在了Driver里面,有的把main.c和传感器写在一起,有的文件夹名称是别的名称,但是内容都和以上一样的,换汤不换药。如有问题也可以看对应项目的代码讲解视频,这个视频里面也会介绍项目工程的结构
2万+

被折叠的 条评论
为什么被折叠?



