CW32快速开发入门

本文详细介绍了如何在MDK环境中创建CW32工程模板,包括GPIO操作、文件复制、添加源文件、配置调试器等步骤,并展示了如何利用这些模板快速点亮和控制LED。
摘要由CSDN通过智能技术生成

一、 CW32工程模板创建

1.以参考标准库中GPIO例程为例来,来新建工程。

2.新建“GPIO”文件,在GPIO文件夹内建立user文件夹。

3.制MDK安装目录下的4个文件。

如“C:\Users\Administrator\AppData\Local\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include”目录下的“cmsis_armcc.h”“cmsis_compiler.h”“cmsis_version.h”“core_cm0plus.h”文件。在user文件夹下新建“SYSLIB”文件夹,并将这4个文件复制进去,如图1所示。

图1 复制文件

4.复制标准库中“\CW32F030_StandardPeripheralLib_V1.8\Examples\gpio\gpio_input_output\USER”目录下的SRC文件夹与INC文件夹到GPIO文件夹下的USER文件夹里。

5.将标准库中的Libraries、IdeSupport文件夹复制到新建的GPIO工程文件里面,如图2所示。

图2 复制到新建GPIO工程文件

6.打开MDK开发环境,选择“Project”/“New μVision Project”命令,新建工程,如图3所示。

图3新建工程文件

7.为工程输入名称,并保存在刚才所建立的GPIO文件夹内,之后会弹出选择芯片型号,如图4所示。

图4 选择ARMCMOP

8.单击“OK”按钮并进行保存。

9.右键单击“Target 1”,在弹出的菜单中选择“Manage Project items”命令,在工程目录中添加.c文件,如图5所示。

图5 添加.c文件

10.在出现的对话框中,增加user和Library文件夹,并添加标准库的.c源文件到Library的Groups,如图6所示。

图6 添加库.c文件

11.添加user文件夹下SRC文件夹下的文件到user Groups,如图7所示。

图7 添加user Groups

12.添加启动文件。启动文件“startup_cw32f030.s”在标准库“IdeSupport\MDK”路径下,如图8所示。

图8 添加启动文件

13.单击“Options for Target‘Target 1’”项目,单击C/C++(AC6)选项卡,如图9所示,在Include Paths编辑框中添加标准库.H文件的路径,最后单击“OK”按钮完成头文件。

图9 添加头文件与.c文件

14.选择“Target”选项卡,在“ARM Compiler”框中选择“Use default compiler version 5”选项,然后单击“OK”,如图10所示。

图10 选择“Use default compiler version 5”选项

15.选择“Debug”选项卡,保持默认“Use Simulator”被选中。

注意:如果使用硬件调试器+目标板开发调试,请选中“Use”,然后修改调试器为“CMSIS-DAP Debugger”(使用CW-DAPLINK或DAP兼容调试器时选择该选项。如果使用其它调试器,请选择合适的对应选项),如图11所示。

图11 修改调试器为“CMSIS-DAP Debugger”

16.选择“Utilities”项,单击“Settings”按钮,在弹出的对话框中选择“FLASH Download”选项,如图12所示。

图12 选择“FLASH Download”选项

17.单击“Add”按钮,找到“CW32F030”的FLASH烧写算法,单击“Add”按钮添加,如图13所示。

图13 添加“CW32F030”的FLASH烧写算法

18.在“Project”菜单中选择“Rebuild all target files”以编译项目。如果项目编译成功,将显示以下窗口,如图14所示。

图14 成功编译CW32F030项目显示窗口

19.根据需要修改源代码。完成编写后,如需要硬件调试,则接入DAPLINK调试器到目标板上,并为目标板供电。然后在MDK IDE中,从调试菜单中选择“开始/停止”调试会话或单击工具栏中的“开始/停止”调试会话按钮,以对FLASH存储器进行编程并开始调试,如图15所示。

图15 对FLASH存储器进行编程并调试

20.MDK-ARM中的调试器可用于用C语言和汇编语言调试源代码,设置断点,以及监控各个变量和代码执行过程中发生的事件,如图16所示。

图16 MDK-ARM中调试器使用事件

至此,可以使用MDK初步开发CW32的相关应用了。

二、 快速点亮一个LED

以CW32F030为例,演示如何快速实现点亮一个LED。

1、软件准备

  • MDK开发环境已安装完成。
  • CW32固件库已下载。
  • 芯片PACK包已安装。
  • 工程模板已创建。

2、硬件准备

  • 准备一套调试器CW-DAPLINK(或其他兼容调试器)。
  • 一个CW32F030的核心板(具体实物可参考第8章内容)。
  • USB供电线。

硬件准备实物图,如图17所示。

图17 硬件准备

3、代码修改

CW32核心板上面有一个LED2指示灯,其控制端口连接至PC13,如图18所示。从图中不难分析,当PC13端口置为低电平时,LED指示灯亮。

图18 LED指示灯电路

打开2.4.1小节创建的工程模板,修改主程序代码如下。

int32_t main(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    CW_SYSCTRL->AHBEN_f.GPIOC = 1;    //打开GPIOC时钟
    //设置PC13为输出模式
    GPIO_InitStruct.Pins = GPIO_PIN_13; //PC13端口
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //配置为推挽输出模式
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;//高速模式
    GPIO_Init(CW_GPIOC, &GPIO_InitStruct);//初始化端口
    PC13_SETLOW(); //置低PC13,点闪LED2  
    while (1);
}

在MDK环境下修改代码,如图19所示。

图19 指示灯控制的代码

4、下载测试

连接CWDAPLINK至目标核心板,并给核心板插入USB线供电,电源指示灯LED1红灯亮起,代表板子电源供电正常。请注意,此时LED2是熄灭状态,如图20所示。

图20 实物连接图

在MDK工程中,配置下载器为DAP类型的调试工具,如图21所示。

图21 下载器选项配置

5、下载并运行程序

下载程序完成后,按SW1红色复位键先进行复位,以确保程序的可靠运行。复位运行后,可以看到:核心板上面的电源指示灯LED1红灯仍然常亮,下面的LED2蓝灯受程序控制,已经被点亮,如图22所示。

图22 程序运行,LED2被点亮

如果要控制LED2灯熄灭,又该如何修改代码呢?

参考代码如下:

int32_t main(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    CW_SYSCTRL->AHBEN_f.GPIOC = 1;    //打开GPIOC时钟
    //设置PC13为输出模式
    GPIO_InitStruct.Pins = GPIO_PIN_13; //PC13端口
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //配置为推挽输出模式
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;//高速模式
    GPIO_Init(CW_GPIOC, &GPIO_InitStruct);//初始化端口
    PC13_SETHIGH();//置高PC13,熄灭LED2  
    while (1);
}

如果要控制LED2灯闪烁,又该如何修改代码呢?

参考代码如下:

int32_t main(void)
{
  unsigned long i;
    GPIO_InitTypeDef GPIO_InitStruct;
    CW_SYSCTRL->AHBEN_f.GPIOC = 1;    //打开GPIOC时钟
    //设置PC13为输出模式
    GPIO_InitStruct.Pins = GPIO_PIN_13; //PC13端口
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //配置为推挽输出模式
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;//高速模式
    GPIO_Init(CW_GPIOC, &GPIO_InitStruct);//初始化端口
  while (1)
    {
      for(i=0;i<600000;i++);  //延时
      PC13_TOG(); //PC13指示灯IO反转
    }      
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值