[CW32F003系列] 【CW32F003FxPx StartKit开发板】-02-基本IO操作和环境说明

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

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

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

  1. #include "cw32f003.h"
  2. #include "cw32f003_gpio.h"
  3. #include "cw32f003_rcc.h"
  4. #include "cw32f003_systick.h"
  5. #include "interrupts_cw32f003.h"
  6. #include "system_cw32f003.h"


  7. void RCC_Configuration(void)
  8. {
  9.   
  10.         //SYSCLK = HSI = 24MHz = HCLK = PCLK
  11.   RCC_HSI_Enable(RCC_HSIOSC_DIV2);
  12.   /* 使能所有外设时钟*/
  13.   CW_SYSCTRL->AHBEN  = 0xFFFFFFFF;
  14.   CW_SYSCTRL->APBEN1 = 0xFFFFFFFF;
  15.   CW_SYSCTRL->APBEN2 = 0xFFFFFFFF;
  16.        
  17. }


  18. void GPIO_Configuration(void)
  19. {  
  20.   GPIO_InitTypeDef GPIO_InitStructure;
  21.        
  22.         //LED1
  23.         GPIO_InitStructure.Pins = GPIO_PIN_6;
  24.   GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
  25.         GPIO_InitStructure.IT = GPIO_IT_NONE;
  26.   GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
  27.        
  28.         //LED2
  29.         GPIO_InitStructure.Pins = GPIO_PIN_7;
  30.   GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
  31.         GPIO_InitStructure.IT = GPIO_IT_NONE;
  32.   GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
  33.        
  34.         //KEY1
  35.   GPIO_InitStructure.Pins = GPIO_PIN_5;
  36.   GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
  37.         GPIO_InitStructure.IT = GPIO_IT_NONE;
  38.   GPIO_Init(CW_GPIOB, &GPIO_InitStructure);

  39.   //KEY2
  40.   GPIO_InitStructure.Pins = GPIO_PIN_6;
  41.   GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
  42.         GPIO_InitStructure.IT = GPIO_IT_NONE;
  43.   GPIO_Init(CW_GPIOB, &GPIO_InitStructure);
  44. }




  45. void IO_Test(void)
  46. {

  47.         if(GPIO_ReadPin(CW_GPIOB,GPIO_PIN_5)==GPIO_Pin_RESET)
  48.         {
  49.                         GPIO_WritePin(CW_GPIOA,GPIO_PIN_6,GPIO_Pin_SET);
  50.         }
  51.         else
  52.         {
  53.                 GPIO_WritePin(CW_GPIOA,GPIO_PIN_6,GPIO_Pin_RESET);
  54.         }

  55.         if(GPIO_ReadPin(CW_GPIOB,GPIO_PIN_6)==GPIO_Pin_RESET)
  56.         {
  57.                         GPIO_WritePin(CW_GPIOA,GPIO_PIN_7,GPIO_Pin_SET);
  58.         }
  59.         else
  60.         {
  61.                 GPIO_WritePin(CW_GPIOA,GPIO_PIN_7,GPIO_Pin_RESET);
  62.         }

  63. }


  64. int32_t main(void)
  65. {
  66.   //配置RCC
  67.   RCC_Configuration();  
  68.         InitTick( 24000000 );    //24000000
  69.   //配置GPIO
  70.   GPIO_Configuration();
  71.         while(1)
  72.         {               
  73.     IO_Test();
  74.                 SysTickDelay(200);        //200ms.
  75.         }
  76.        
  77. }




小小蚂蚁举千斤 发表于 2024-6-11 16:20 | 显示全部楼层
现在国产芯片IO操作基本都是库文件进行程序编写
AdaMaYun 发表于 2024-6-13 20:30 | 显示全部楼层
基本IO操作是入门的基础
OKAKAKO 发表于 2024-6-21 21:22 | 显示全部楼层
IO是基本操作
中国龙芯CDX 发表于 2024-6-26 16:33 | 显示全部楼层
DMA的那个C文件没法使用是硬件问题吗?
 楼主| shenxiaolin 发表于 2024-6-26 17:21 | 显示全部楼层
中国龙芯CDX 发表于 2024-6-26 16:33
DMA的那个C文件没法使用是硬件问题吗?

没有去验证,但是应该是软件的问题更大一点。
pssyx 发表于 2024-6-27 09:36 | 显示全部楼层
中国龙芯CDX 发表于 2024-6-26 16:33
DMA的那个C文件没法使用是硬件问题吗?

Yes,因为CW32F003没有DMA模块!
请下载最新版的CW32F003的LIB文件重试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

94

主题

1358

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部