【GD32E503评测】——02.从零开始(新建工程、LED闪烁、SHELL移植)
[复制链接]
本帖最后由 xld0932 于 2021-1-11 21:46 编辑
一、新建工程
1、我们使用的是KEIL集成开发环境,上个帖子我们已经安装过了芯片的PACK包,下载了芯片的驱动库程序,这两个是我们需要提前准备的;
2、打开KEIL软件,点击菜单栏Project->New uVision Project...
3、在弹出的Create New Project窗口中选择好项目工程存放的路径,输入工程名称,点击保存;
4、在弹出的Select Device for Target窗口中,选择芯片的型号:GD32E503VE,然后点击OK;
5、在弹出的Manage Run-Time Environment窗口中,选择CMSIS下面的CORE选项,然后点击OK;至此一个基于GD32E503的KEIL空工程就创建完成了,接下来我们需要在工程中添加代码和对工程进行配置;
6、点击工具栏上的Manage Project Items图标,在弹出的窗口中修改和添加源代码,如下图所示;最后点击OK;
7、点击工具样上的Options for Target...图标,在弹出的窗口中对项目工程进行参数设置;
8、在Target选项卡中,Code Generation中的ARM Compiler选择Use default compiler version 6,勾选Use MicroLIB;
9、在Output选项卡中,勾选Create HEX File;
10、在C/C++(AC86)选项卡中,Preprocessor Symbols中的Define添加宏定义,在Include Paths中添加需要包含的文件路径;
11、在Debug选项卡中,选择Use CMSIS-DAP ARMv8-M Debugger;
12、在Utilities选项卡中,勾选Use Debug Driver,点击Setting按键,在弹出的窗口中勾选Reset and Run选项,其后点击OK,再次点击Options for Target窗口中的OK;至此工程就配置完成了;
二、LED灯闪烁
1、硬件原理图:LED灯是通过GPIO口直接驱动的,所以当GPIO端口引脚为高电平时LED点亮,当GPIO端口引脚为低电平时LED灯熄灭;
2、LED头文件:定义了每个LED控制引脚的时钟、端口和引脚
3、LED源文件:实现了对LED灯的初始化,并创建了一个LED的TASK任务,这个任务是每间隔250毫秒调用一次LED_Handler函数;LED_Handler函数实现了对4个LED灯的闪烁控制;
三、移植Letter-shell
1、Letter-shell是一个C语言编写的,可以嵌入在程序中的嵌入式shell,主要面向嵌入式设备,以C语言函数为运行单位,可以通过命令行调用,运行程序中的函数;它是程序在运行时的一个极其方便一个调试助手,本文移植的是Letter-shell 2.x的版本;开源代码链接:https://gitee.com/smallqing/letter-shell;
2、Letter-shell是基于串口的,正好开发板上将USART0通过MiniUSB接口引出来了,方便我们调试监控和打印信息,所以我们需要对USART0进行初始化配置;
3、配置USART0,移植Letter-shell;
四、编译下载运行程序
1、将程序完善后,对整个工程进行编译,编译无误后将程序下载到开发板运行;
2、打开串口调试助手,在程序复位后运行,打印如下消息,当输入help并回车后,显示当前SHELL支持的命令,说明串口配置是SHELL移植是正确的;
3、观察开发板的运行情况,看到4个LED灯每间隔250毫秒的时间进行一次翻转操作;
五、工程源程序
Project_LED_SHELL_20210111.zip
(414.17 KB, 下载次数: 65)
|