今天来看了一下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.
}
}
|