【前言】
在官方的示例中,有他的Template模块工程:
但是他的固件库是共用文件夹的,在我们用起来,如果有些固件库有修改,会影响其他的工程,所以我这里自己来创建一个工程模块,拷贝后可以直接拿来用。
【步骤】
1、创建Template工程文件夹
PS D:\CW_WHXY\CW32L083Pro\Template> tree
├─CMSIS //存放M0+内核文件
├─HW //硬件驱动
├─Libraries //存放官方驱动库
├─MDK //存放MDK工程文件
├─OBJ //编译输出目录
└─USER //存用用户文件
2、复制固件库到Libraries文件下。
3、打开Keil新建工程,选择目录Template,输入工程名称:
4、选择对应的芯片:
5、添加分组:
6、修改MDK输入目录为OBJ目录:
7、添加头文件目录到工程中:
.\CMSIS\inc
..\USER\inc
..\CMSIS\inc
..\HW\inc
..\Libraries\inc
8、向工程中添加分组分件,添加好后如下图所示:
9、编译后会报cmsis.h头文件错误,需要找到keil的目录复制core_cm0plus.h、cmsis_version.h、cmsis_compiler.h、cmsis_armclang.h、cmsis_armcc.h到CMSIS下面的inc目录下面:
当然如果要用RTOS可能还需要根据编译报错,复制相关文件。
【测试】
编写代码点亮开发板的两个LED灯,来测试工程是否配置正确
#include "main.h" #define LED_GPIO_PORT CW_GPIOC #define LED_GPIO_PINS GPIO_PIN_3 | GPIO_PIN_2 void Delay(uint16_t nCount); int32_t main(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; RCC_HSI_Enable(RCC_HSIOSC_DIV6); __RCC_GPIOC_CLK_ENABLE(); GPIO_InitStruct.IT = GPIO_IT_NONE; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pins = LED_GPIO_PINS; GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct); while (1) { GPIO_TogglePin(LED_GPIO_PORT, LED_GPIO_PINS); Delay(0xFFFF); } } /** * @brief 循环延时 * * @param nCount */ void Delay(__IO uint16_t nCount) { /* Decrement nCount value */ while (nCount != 0) { nCount--; } }
下载到开发板,可以正确的点亮LED灯,配件初始基础工程结速。复制文件夹后,就可以在此基础之上进行开发了。
附工程文件: