这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » 【武汉芯源CW32】OTA升级系列之二创建基础Keil工程

共2条 1/1 1 跳转至

【武汉芯源CW32】OTA升级系列之二创建基础Keil工程

助工
2024-10-07 15:04:40     打赏

【前言】

在官方的示例中,有他的Template模块工程:

image.png

但是他的固件库是共用文件夹的,在我们用起来,如果有些固件库有修改,会影响其他的工程,所以我这里自己来创建一个工程模块,拷贝后可以直接拿来用。

【步骤】

1、创建Template工程文件夹

PS D:\CW_WHXY\CW32L083Pro\Template> tree

├─CMSIS  //存放M0+内核文件

├─HW      //硬件驱动

├─Libraries   //存放官方驱动库

├─MDK        //存放MDK工程文件

├─OBJ         //编译输出目录

└─USER     //存用用户文件

2、复制固件库到Libraries文件下。

3、打开Keil新建工程,选择目录Template,输入工程名称:

image.png

4、选择对应的芯片:

image.png

5、添加分组:

image.png

6、修改MDK输入目录为OBJ目录:

image.png

7、添加头文件目录到工程中:

.\CMSIS\inc

..\USER\inc

..\CMSIS\inc

..\HW\inc

..\Libraries\inc

image.png

8、向工程中添加分组分件,添加好后如下图所示:

image.png

9、编译后会报cmsis.h头文件错误,需要找到keil的目录复制core_cm0plus.h、cmsis_version.h、cmsis_compiler.h、cmsis_armclang.h、cmsis_armcc.h到CMSIS下面的inc目录下面:

image.png

当然如果要用RTOS可能还需要根据编译报错,复制相关文件。

image.png

【测试】

编写代码点亮开发板的两个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灯,配件初始基础工程结速。复制文件夹后,就可以在此基础之上进行开发了。

附工程文件:

CW32L083Pro.zip





关键词: 基础          武汉芯源     MDK     模版    

院士
2024-10-10 18:08:37     打赏
2楼

学习了,谢谢分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]