非常荣幸能参加此次活动并参与评测。
本次收到的开发板型号是CW32F030CCxT6,芯片型号为CW32F030C8T6
现在演示一下按键控制LED,接线图如下:
KEY1控制LED1,KEY2控制LED2,当按键1按下时LED1电平反转,当按键2按下时,LED2电平翻转,同时PB10上接的LED闪烁,按键采用延时滤波,硬件连接如下:
程序如下:
#include "../inc/main.h"
void delayXms(uint16_t Xms); #include "../inc/main.h"
void delayXms(uint16_t Xms);
int32_t main(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
CW_SYSCTRL->AHBEN_f.GPIOA = 1; //Open GPIOA Clk
CW_SYSCTRL->AHBEN_f.GPIOB = 1; //Open GPIOB Clk
//set PA01 / PA02 as input
GPIO_InitStruct.Pins = GPIO_PIN_1 | GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_Init( CW_GPIOA , &GPIO_InitStruct);
//set PA08 / PA09 / PA10 as outupt
GPIO_InitStruct.Pins = GPIO_PIN_8 | GPIO_PIN_9| GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.IT = GPIO_IT_NONE;
GPIO_Init( CW_GPIOB , &GPIO_InitStruct);
while(1)
{
if( PA01_GETVALUE()==0 )
{
delayXms(10);
while(PA01_GETVALUE()==0 );
delayXms(10);
PB09_TOG();
}
if( PA02_GETVALUE()==0 )
{
delayXms(10);
while(PA02_GETVALUE()==0 );
delayXms(10);
PB08_TOG();
}
if( PB08_GETVALUE()==0 )
{
GPIO_WritePin( CW_GPIOB ,GPIO_PIN_10 , GPIO_Pin_SET );
delayXms(20);
GPIO_WritePin( CW_GPIOB ,GPIO_PIN_10 , GPIO_Pin_RESET );
delayXms(20);
}
else
{
GPIO_WritePin( CW_GPIOB ,GPIO_PIN_10 , GPIO_Pin_SET );
}
}
}
void delayXms(uint16_t Xms)
{
uint16_t i,j;
for(i = Xms;i>0;i--)
for(j=5000;j>0;j--);
}
时间仓促,其它的功能在持续研究中,以后有机会再更新。
|