概述
本文档基于复旦微 FM33LE026单片机详细描述基于复旦微平台如何新建标准工程,为广大读者和客户提供帮助。文档首先介绍关于复旦微标准库的结构,然后介绍在MDK-Keil软件新建标准工程,添加库函数文件,设置软件相关参数,帮助广大读者朋友们快速开发。该文档同样适用于 FM33LC0XX 、 FM33LG0XX和FM33FT0XXA 单片机。
-
开发前准备
1.1、下载相关资料
在开发前可以准备以下相关资料,相关资料可在复旦微官方论坛下载:
1、安装好 Keil 软件;
2、复旦微 FM33LE0XX_FL_Library_v1.2.1 标准库文件;
3、复旦微 FM33LE0XX_KEIL例程_v1.3;
1.2、库文件结构介绍
图1-1
如图1-1所示,打开“FM33LE0XX_FL_Library_v1.2.1”文件夹,可以看到【CMSIS】和【FM33LE0xx_FL_Driver】两个文件夹,其中【CMSIS】文件夹下是与内核有关的文件,包含单片机启动后的环境配置,在【FM33LE0xx_FL_Driver】文件夹下,包含两个文件夹“Inc”和“Src”,其中“Src”文件夹下是关于单片机外设有关的C文件,例如 fm33le0xx_fl_gpio.c 、 fm33le0xx_fl_adc.c 等等,每一个.c文件都对应一个外设功能。在“Inc”文件价夹下,对应的则是在“Src”文件夹下C文件的.h文件,例如 fm33le0xx_fl_gpio.h 、 fm33le0xx_fl_adc.h 等等;
1.2、新建工程文件夹
首先新建一个工程文件夹,可以命名为【Templete】,在其中新建以下文件夹:
APP | 用于存放应用有关的文件 例如 wifi.c、 wifi.h |
BSP | 用于存放驱动层有关的文件 bsp_led.c、 bsp_led.h |
Doc | 用于存放版本说明相关的文件,例如 readme.txt |
Libraries | 用于存放单片机库文件 |
Project | 用于存放工程文件和目录 |
User | 用于存放 main.c |
新建文件夹后如下图所示:
图1-2
二、新建工程
在使用单片机编程前,首先要学会新建一个软件工程,然后编写代码,接下来详细介绍如何新建工程。
2.1、新建工程库文件
(1)、在新工程文件夹下的【Libraries】文件夹下新建【CMSIS】文件夹,并打开“FM33LE0XX_FL_Library_v1.2.1”库文件;
(2)、将库中【…\CMSIS\Device\FM\FM33xx】目录下的【Include】文件夹复制到新建的【CMSIS】文件夹下;
(3)、将库中【…\CMSIS\Device\FM\FM33xx\Source\Templates】目录下的【ARM】文件夹复制到新建的【CMSIS】文件夹下;
(4)、将库中【…\CMSIS\Device\FM\FM33xx\Source】路径下的 “system_fm33le0xx.c”文件复制到新建的【CMSIS】文件夹下;
(5)、将库中【FM33LE0xx_FL_Driver】文件夹复制到新工程文件夹下的【Libraries】文件夹下;
图2-1
(6)、在新建的工程文件下的User文件夹中新建“main.c”文件;
2.2、在Keil中新建工程
(1)、打开Keil软件,新建工程,点击标题栏 【Project->New uVision project…】新建工程,并将其命名为【Templete】(你也可以根据自己的喜好命名)保存在工程目录下的 Project 文件夹中;
图2-2
(2)、保存工程后会弹出页面选取目标芯片,本次选择“FM33LE02X”型号的单片机并点击 OK,之后会弹出 “Manage Run-Time-Environment”窗口,直接点击取消;
图2-3
图2-4
(3)、在新建的工程下,编辑软件目录;点击选项卡如图1-7,编辑工程目录:
图2-5
图2-6
在工程目录下分别新建“STARTUP”、“CMSIS”、“LWIB”、“USER”、“APP”和“Doc”,也可以根据自己喜好添加或删除;
图2-7
2.3、向工程中添加库文件
点击选项卡添加文件到工程目录:
图2-8
添加内容如下表:
目录 | 目标文件 |
STARTUP | 工程路径“\Libraries\CMSIS\ARM”下的 startup_fm33le0xx.s 文件 |
CMSIS | 工程路径 “\Libraries\Drivers\CMSIS”下的 system_fm33le0xx.c |
LWIB | 工程路径 “\Libraries\FM33LE0xx_FL_Driver\Src”下的全部C文件 |
USER | 工程路径 “\User”下的main.c文件 |
APP | 工程路径 “\APP”下的全部文件 (暂时没有就不添加) |
DOC | 工程路径 “\Doc”下的全部文件 (暂时没有就不添加) |
由于添加文件时默认格式是 .c 文件,所以在添加 startup_fm33le0xx.s 文件时不显示改文件,此时可以选择文件类型添加:
图2-9
添加后如图2-8所示:
图2-10
2.4、添加文件文件相对路径
图2-11
2.5、添加宏定义
在库函数中使用了条件编译,为了编译预处理,需要添加相应的宏定义,打开一个官方的Demo例程,在C/C++选项中可以看到官方的例程中添加全局的宏定义,我们直接复制到自己新建的工程相对应的位置:
图2-12
2.6、添加 main 函数
(1)、在工程中打开 main.c文件,然后编写简单的main函数,如下:
#include "fm33le0xx_fl.h"
int main(void)
{
FL_Init();
FL_DelayMs(100);
while(1)
{
}
}
(2)、编译检查:
当写完main函数以后,可以编译检查是否有错误:
图2-13
三、软件工程的设置
3.1、下载设置
复旦微芯片使用的是ARM0内核,支持SWD下载模式,目前我们配置使用Jlink的SWD下载,如图3-1所示:
图3-1
选择下载时的相关参数:
图3-2
在【Flash Download】选项中,我们可以看到①处的几个参数:
【Erase Full Chip】: 表示将芯片的Flash全部擦除;
【Erase Sectors】: 表示是扇区擦除,一般只擦除需要的大小,速度会快些;
【Do not Erase】: 表示不擦除,可以在特定的时候使用;
至于【Program】和【Verift】是默认勾选的,不做解释,【Reset and Run】表示下载后立刻开始运行,这个地方可以不选,但是下载后只有通过复位单片机时才会运行,我们这里手动选择,让单片机下载后立刻开始运行;
第②处的是选择单片机的Flash大小,需要根据当前使用的单片机进行选择,选择错误时可能无法下载程序;
3.2、其他设置选项
3.2.1、如图3-3,在Target 选项下,第①处可以勾选【Use MicroLIB】选项,该选项是使用Keil下的简易库,当我们需要使用 printf 这样的函数时可以使用,这里我们默认勾选;第②处是设置单片机程序的起始地址和空间大小,在需要做BootLoader的时候需要进行相关的设置;
图3-3
3.2.2、如图3-4,勾选【Create HEX File】后才可以生成我们需要的HEX文件:
图3-4
3.2.3、如图3-5,在①处可以设置软件的编译等级,当程序所占的空间比较多的时候,可以通过提高编译等级优化程序,但是在优化程序时编译器往往会省略很多,这对编程规范有一定的要求,此时我们默认选择最低,防止程序出现一些不确定的异常;在②处勾选【C99 Mode】,这个表示使用 C99 格式的编写规范,可以方便我们编程,默认可以不勾选;
图3-5
结束语:
此文章用于学习交流,如有纰漏错误,还望指正;后期将不定时更新新的内容,感谢大家!
QQ : 3255302691