打印
[CW32F003系列]

【CW32F003FxPx StartKit开发板】-02-基本IO操作和环境说明

[复制链接]
3183|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
今天来看了一下IOde操作,相对来说还是比较简单的,这里就直接来上代码,看看我们的环境搭建是否成功,按照前面给到的资料,我们重新建立了工程,整体的工程框架如下图,在新建工程的时候发现一个问题,就是DMA的那个C文件没法使用,很多东西没有添加,导致了我们建立工程的时候报错,所以这里直接去掉DMA的相关文件。


我们首先使用DAP链接硬件,保证硬件连接是没有问题的,

整体的下载链接效果如图

然后就是代码了,这里设置的是按键按下灯就点亮,代码相对简单,主要是为了检验环境搭建是否成功

#include "cw32f003.h"
#include "cw32f003_gpio.h"
#include "cw32f003_rcc.h"
#include "cw32f003_systick.h"
#include "interrupts_cw32f003.h"
#include "system_cw32f003.h"


void RCC_Configuration(void)
{
  
        //SYSCLK = HSI = 24MHz = HCLK = PCLK
  RCC_HSI_Enable(RCC_HSIOSC_DIV2);
  /* 使能所有外设时钟*/
  CW_SYSCTRL->AHBEN  = 0xFFFFFFFF;
  CW_SYSCTRL->APBEN1 = 0xFFFFFFFF;
  CW_SYSCTRL->APBEN2 = 0xFFFFFFFF;
       
}


void GPIO_Configuration(void)
{  
  GPIO_InitTypeDef GPIO_InitStructure;
       
        //LED1
        GPIO_InitStructure.Pins = GPIO_PIN_6;
  GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
        GPIO_InitStructure.IT = GPIO_IT_NONE;
  GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
       
        //LED2
        GPIO_InitStructure.Pins = GPIO_PIN_7;
  GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
        GPIO_InitStructure.IT = GPIO_IT_NONE;
  GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
       
        //KEY1
  GPIO_InitStructure.Pins = GPIO_PIN_5;
  GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
        GPIO_InitStructure.IT = GPIO_IT_NONE;
  GPIO_Init(CW_GPIOB, &GPIO_InitStructure);

  //KEY2
  GPIO_InitStructure.Pins = GPIO_PIN_6;
  GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
        GPIO_InitStructure.IT = GPIO_IT_NONE;
  GPIO_Init(CW_GPIOB, &GPIO_InitStructure);
}




void IO_Test(void)
{

        if(GPIO_ReadPin(CW_GPIOB,GPIO_PIN_5)==GPIO_Pin_RESET)
        {
                        GPIO_WritePin(CW_GPIOA,GPIO_PIN_6,GPIO_Pin_SET);
        }
        else
        {
                GPIO_WritePin(CW_GPIOA,GPIO_PIN_6,GPIO_Pin_RESET);
        }

        if(GPIO_ReadPin(CW_GPIOB,GPIO_PIN_6)==GPIO_Pin_RESET)
        {
                        GPIO_WritePin(CW_GPIOA,GPIO_PIN_7,GPIO_Pin_SET);
        }
        else
        {
                GPIO_WritePin(CW_GPIOA,GPIO_PIN_7,GPIO_Pin_RESET);
        }

}


int32_t main(void)
{
  //配置RCC
  RCC_Configuration();  
        InitTick( 24000000 );    //24000000
  //配置GPIO
  GPIO_Configuration();
        while(1)
        {               
    IO_Test();
                SysTickDelay(200);        //200ms.
        }
       
}




使用特权

评论回复
沙发
小小蚂蚁举千斤| | 2024-6-11 16:20 | 只看该作者
现在国产芯片IO操作基本都是库文件进行程序编写

使用特权

评论回复
板凳
AdaMaYun| | 2024-6-13 20:30 | 只看该作者
基本IO操作是入门的基础

使用特权

评论回复
地板
OKAKAKO| | 2024-6-21 21:22 | 只看该作者
IO是基本操作

使用特权

评论回复
5
中国龙芯CDX| | 2024-6-26 16:33 | 只看该作者
DMA的那个C文件没法使用是硬件问题吗?

使用特权

评论回复
6
shenxiaolin|  楼主 | 2024-6-26 17:21 | 只看该作者
中国龙芯CDX 发表于 2024-6-26 16:33
DMA的那个C文件没法使用是硬件问题吗?

没有去验证,但是应该是软件的问题更大一点。

使用特权

评论回复
7
pssyx| | 2024-6-27 09:36 | 只看该作者
中国龙芯CDX 发表于 2024-6-26 16:33
DMA的那个C文件没法使用是硬件问题吗?

Yes,因为CW32F003没有DMA模块!
请下载最新版的CW32F003的LIB文件重试。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:运达电气-产品经理
简介:毕业于西南科技大学,从事MCU、MPU开发工作近8年,熟悉嵌入式软硬件开发流程,产品管理以及现场项目管理。

90

主题

1128

帖子

6

粉丝