芯源半导体CW32
直播中

申小林

12年用户 368经验值
擅长:可编程逻辑 EMC/EMI设计 处理器/DSP 控制/MCU EMC/MEI设计
私信 关注

【CW32饭盒派开发板试用体验】-03-点亮LED灯

昨天帖子里面有个地方写错了,就是原来CW32是有支持包的,可以在官网上自己去下载,下载地址大家搜一下就可以了,砸固件支持包内,今天就来测试一下点灯,点灯是最简单的一个例子,它表明你所建立的工程没有问题,环境搭建没有问题,并且可以正确编译出代码,这是最基础也是最重要的一补,我将昨天的工程重新做了一遍,重新建立了工程,以为没有及时的去官网下载资料,仅凭试用人员上传至QQ群的资料来判断太过武断,不是一个工程师做事应有的风格,好了,我们就来看看这个点灯的效果吧。

先把代码上传上来:

//系统时钟配置为64M,上电,LED灯循环点亮
/* Includes ------------------------------------------------------------------*/
#include "base_types.h"
#include "cw32f030.h"
#include "system_cw32f030.h"
#include "interrupts_cw32f030.h"

	
#include "cw32f030_adc.h"	
#include "cw32f030_atim.h"	
#include "cw32f030_awt.h"	
#include "cw32f030_btim.h"	
#include "cw32f030_crc.h"	
#include "cw32f030_debug.h"	
#include "cw32f030_digitalsign.h"	
#include "cw32f030_dma.h"	
#include "cw32f030_flash.h"	
#include "cw32f030_gpio.h"	
#include "cw32f030_gtim.h"	
#include "cw32f030_i2c.h"
#include "cw32f030_iwdt.h"	
#include "cw32f030_lvd.h"	
#include "cw32f030_pwr.h"	
#include "cw32f030_ram.h"	
#include "cw32f030_rcc.h"
#include "cw32f030_rtc.h"	
#include "cw32f030_spi.h"	
#include "cw32f030_systick.h"	
#include "cw32f030_uart.h"	
#include "cw32f030_wwdt.h"

void GPIO_Configuration(void);
void RCC_Configuration(void);
	
int main()
{
	uint32_t i;
	RCC_Configuration(); //时钟配置64M
	GPIO_Configuration();//LED初始化	
	while(1)
	{
		  PA07_TOG();for(i=0;i<1000000;i++);		  
		  PA08_TOG();for(i=0;i<1000000;i++);		 
   		PC13_TOG(); for(i=0;i<1000000;i++);	
	}
}


void RCC_Configuration(void)
{
  /* 0. HSI使能并校准 */
  RCC_HSI_Enable(RCC_HSIOSC_DIV6);

  /* 1. 设置HCLK和PCLK的分频系数 */
  RCC_HCLKPRS_Config(RCC_HCLK_DIV1);
  RCC_PCLKPRS_Config(RCC_PCLK_DIV1);
  
  /* 2. 使能PLL,通过PLL倍频到64MHz */
  RCC_PLL_Enable(RCC_PLLSOURCE_HSI, 8000000, 8);     // HSI 默认输出频率8MHz
 // RCC_PLL_OUT();  //PC13脚输出PLL时钟
  
  ///< 当使用的时钟源HCLK大于24M,小于等于48MHz:设置FLASH 读等待周期为2 cycle
  ///< 当使用的时钟源HCLK大于48MHz:设置FLASH 读等待周期为3 cycle
  __RCC_FLASH_CLK_ENABLE();
  FLASH_SetLatency(FLASH_Latency_3);   
    
  /* 3. 时钟切换到PLL */
  RCC_SysClk_Switch(RCC_SYSCLKSRC_PLL);
  RCC_SystemCoreClockUpdate(64000000);	
}


void GPIO_Configuration(void)
{
  GPIO_InitTypeDef GPIO_InitStruct;
	__RCC_GPIOB_CLK_ENABLE();
	__RCC_GPIOC_CLK_ENABLE();
	__RCC_GPIOA_CLK_ENABLE();

  GPIO_InitStruct.IT = GPIO_IT_NONE; //LED 
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pins = GPIO_PIN_7|GPIO_PIN_8;
  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  GPIO_Init(CW_GPIOA, &GPIO_InitStruct);
 
	GPIO_InitStruct.Pins = GPIO_PIN_13;	// LED4
  GPIO_Init(CW_GPIOC, &GPIO_InitStruct);
	
	GPIO_WritePin(CW_GPIOB,GPIO_PIN_7|GPIO_PIN_8,GPIO_Pin_RESET);   //LED灯拉高
	GPIO_WritePin(CW_GPIOC,GPIO_PIN_13,GPIO_Pin_RESET);
}

好了,来一个点灯上电的视频,

CW32LED

更多回帖

发帖
×
20
完善资料,
赚取积分