本帖最后由 sunsili 于 2024-4-9 23:20 编辑
LKS凌鸥 LKS32MC08x开发环境搭建 评测(3)
上两篇介绍了LKS凌鸥 LKS32MC08x中压中小功率无刷电机驱动开发板硬件电路相关信息,详情参阅:
LKS凌鸥 LKS32MC08x中压中小功率无刷电机驱动开发板开箱评测(1)-谷动谷力 (sunsili.com)
LKS凌鸥 LKS32MC08x中压中小功率无刷电机驱动开发板开箱评测...-谷动谷力 (sunsili.com)
本文将介绍基于LKS08系列MCU软件开发情况,从搭建开发环境、创建新工程、编写工程代码这几步来讲解,在实操过程中将遇到的一些问题和注意事项,给大家分享一下: 1.准备工作 2.安装芯片PACK支持包 3.创建基础工程 4.编写工程代码:LED、KEY、基于UART0移植的Letter-shell 5.下载运行演示
准备工作
目前官网上仅提供了基于KEIL5(我的版本是5.30,有些版本可能安装不了pack,供参考)的Device Pack,所以我们开发IDE环境是基于KEIL MDK软件,另外就是我常用的MobaXterm 串口调试终端软件。
LKS_EVB_MCU083_V2.0核心板和LKD_EVB_MVPOWPRE_V5.0电机驱动底板各1块,J-LINK调试下载工具、杜绑线若干,LKS_EVB_MCU083_V2.0核心板上板载设计的是SWD下载接口。
凌鸥的开发资料都可以通过官网下载到 第一篇评测有相关资料下载链接: LKS凌鸥 LKS32MC08x中压中小功率无刷电机驱动开发板开箱评测(1)-谷动谷力 (sunsili.com)
安装LKS MCU PACK支持包
在安装完成后,我们就可以在芯片列表中找到凌鸥的芯片型号,创建工程进行开发了。
创建基础工程
STEP1.打开KEIL5 MDK软件,点击菜单栏Project->New uVision Project...
STEP2.在弹出的Create New Project窗口中选择工程存放的路径以及命名项目文件名:
STEP3.在弹出的Select Device for Target窗口中选择凌鸥芯片型号:LKS32MC083C8T8:
STEP4.在弹出的Manage Run-Time Environment窗口中不作任何操作,直接点击OK:
STEP5.此时一个基于LKS32MC083C8T8芯片的空项目工程就创建出来了,接下来我们还需要向工程中添加分组、添加程序以及配置参数等操作:
STEP6.点击工具栏上的Manage Project Items按钮:
STEP7.在弹出的Manage Project Items窗口中的Project Items选项卡中,将Project Targets重新命名为LKS32MC083C8T8、在Groups中添加分组、然后在对应的Group中再添加Files源程序:
STEP8.完整的工程目录文件如下所示:
需要注意的是我们一般源程序都是*.c/*.h类型的文件,但在添加官方库程序时有一个.o类型的文件lks32mc08x_nvr.o,这是KEIL编译后输出的文件,可以理解为看不到源码形式的程序文件,也可以直接编译;如果不添加这个文件会有Read_Trim的错误提示哦!!!
STEP9.点击工具栏上的Options for Target...按钮:
STEP10.在弹出的Options for Target窗口的Target选项卡中,将Code Generation选择使用Use default compiler version5,勾选Use MicroLIB:
STEP11.在Output选项卡中,可以设置Name of Executable,如果需要生成HEX烧录文件则需要勾选Create HEX File选项,将Browse Information勾选是为了程序实现过程中或者是调试过程中的便捷:
STEP12.在C/C++选项卡中,对包含的头文件路径Include Paths进行配置:
STEP13.在Debug选项卡中,选择相就的调试工具,并点击Settings进行后一级设置,如果提示未知的芯片型号,我们默认选择Cortex-M0即可,然后将程序烧录接口方式修改为SW模式,这样在SW Device中就可以成功检测到芯片了:
STEP14.在Utilities选项卡中,选择Use Target Driver for Flash Programming选项,默认勾选Use Debug Driver和Update Target before Debugging,然后点击Settings进行后一级设置,确认Programming Algorithm下载算法的选择是正确的,并勾选Reset and Run,这样在程序下载完成后,就可以自动复位运行了:
STEP15.到此整个项目工程就完全创建、配置完成了,接下来就可以开始编写程序代码了。
编写工程代码
打开官方的示例程序,我们使用到了LKS32MC08x_Periph_Driver中的库程序;示例中官方除了startup_lks32mc08x.s启动文件之外,并没有看到我们常见的system_lks32mc08x.c文件;通过查阅官方示例工程源程序,我们看到多出了一个hardware_init.c文件,在这个文件中实现了对MCU使用外设的初始化和startup文件中需要调用的SystemInit函数;但个人习惯,还是把这个hardware_init.c的文件名给改写成了system_lks32mc08x.c,只实现了SystemInit对系统时钟的配置,其余的外设初始化放到了其它的.c文件中;另外还有一个需要注意的文件是hardware_config.h文件,这个在底层库程序中都有包含,它主要是包含了底层库程序的一些头文件,以及共用的宏定义,所以这个文件一定要包含进来哈!!!
最后一个就是interrupt.c文件,官方是将所有的中断函数实现集中在一个文件中的,这样写各有优缺点,我还是按照之前我的写法,在使用到的时候再具体实现,因为本身在startup_lks32mc08x.s文件中加了weak的修饰,我不用的时候完全不需要去写个空函数嘛。
|