[CW32F003系列]

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

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

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

整体的下载链接效果如图
2.png
然后就是代码了,这里设置的是按键按下灯就点亮,代码相对简单,主要是为了检验环境搭建是否成功

#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.
        }
       
}




使用特权

评论回复
现在国产芯片IO操作基本都是库文件进行程序编写

使用特权

评论回复
AdaMaYun| | 2024-6-13 20:30 | 显示全部楼层
基本IO操作是入门的基础

使用特权

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

本版积分规则

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

42

主题

543

帖子

5

粉丝