- 接线规则
- 除电源外LED灯接A0-A5,触摸按键接A6A7B0B1
- 注:LED为共阳极
-
#include"stm32f10x.h"
#include"delay.h"
#define ABC Delay(0x4FFFFF);
#define ABD Delay(0x0FFFFF);
#define ABE Delay(0x04FFFF);
/*
Author: Skye99
Github: Skye99
*/
void GPIO_Config()
{
GPIO_InitTypeDef arms;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
arms.GPIO_Pin=GPIO_Pin_6;
arms.GPIO_Mode=GPIO_Mode_IPD;
GPIO_Init(GPIOA,&arms);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
arms.GPIO_Pin=GPIO_Pin_7;
arms.GPIO_Mode=GPIO_Mode_IPD;
GPIO_Init(GPIOA,&arms);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
arms.GPIO_Pin=GPIO_Pin_0;
arms.GPIO_Mode=GPIO_Mode_IPD;
GPIO_Init(GPIOB,&arms);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
arms.GPIO_Pin=GPIO_Pin_1;
arms.GPIO_Mode=GPIO_Mode_IPD;
GPIO_Init(GPIOB,&arms);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
arms.GPIO_Mode=GPIO_Mode_Out_PP;
arms.GPIO_Pin=GPIO_Pin_0;
arms.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&arms);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
arms.GPIO_Mode=GPIO_Mode_Out_PP;
arms.GPIO_Pin=GPIO_Pin_1;
arms.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&arms);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
arms.GPIO_Mode=GPIO_Mode_Out_PP;
arms.GPIO_Pin=GPIO_Pin_2;
arms.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&arms);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
arms.GPIO_Mode=GPIO_Mode_Out_PP;
arms.GPIO_Pin=GPIO_Pin_3;
arms.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&arms);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE );
arms.GPIO_Mode=GPIO_Mode_Out_PP;
arms.GPIO_Pin=GPIO_Pin_4;
arms.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&arms);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
arms.GPIO_Mode=GPIO_Mode_Out_PP;
arms.GPIO_Pin=GPIO_Pin_5;
arms.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&arms);
}
void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
int main()
{
int i=0;
int c=0;
int choose=0;
GPIO_Config();
while(1)
{
if(GPIO_ReadInputDataBit( GPIOA,GPIO_Pin_6)==1)
{
while(GPIO_ReadInputDataBit( GPIOA,GPIO_Pin_6)==1);
choose=1;
}
if(GPIO_ReadInputDataBit( GPIOA,GPIO_Pin_7)==1)
{
while(GPIO_ReadInputDataBit( GPIOA,GPIO_Pin_7)==1);
choose=2;
}
if(GPIO_ReadInputDataBit( GPIOB,GPIO_Pin_0)==1)
{
while(GPIO_ReadInputDataBit( GPIOB,GPIO_Pin_0)==1);
choose=3;
}
if(GPIO_ReadInputDataBit( GPIOB,GPIO_Pin_1)==1)
{
while(GPIO_ReadInputDataBit( GPIOB,GPIO_Pin_1)==1);
choose=4;
}
if(choose==2)
{
c=99;
}
if(choose==1)
{
switch(c){
case 0:{
GPIO_SetBits(GPIOA,GPIO_Pin_5);
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
ABE;c++;break;}
case 1:{
GPIO_SetBits(GPIOA,GPIO_Pin_0);
GPIO_ResetBits(GPIOA,GPIO_Pin_1);
ABE;c++;break;}
case 2:{
GPIO_SetBits(GPIOA,GPIO_Pin_1);
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
ABE;c++;break;}
case 3:{
GPIO_SetBits(GPIOA,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
ABE;c++;break;}
case 4:{
GPIO_SetBits(GPIOA,GPIO_Pin_3);
GPIO_ResetBits(GPIOA,GPIO_Pin_4);
ABE;c++;break;}
case 5:{
GPIO_SetBits(GPIOA,GPIO_Pin_4);
GPIO_ResetBits(GPIOA,GPIO_Pin_5);
ABE;c++;break;}
case 99:{break;}
}
}
if(choose==3)
{
switch(c){
case 0:{
GPIO_SetBits(GPIOA,GPIO_Pin_0);
GPIO_ResetBits(GPIOA,GPIO_Pin_5);
ABE;c++;break;}
case 1:{
GPIO_SetBits(GPIOA,GPIO_Pin_5);
GPIO_ResetBits(GPIOA,GPIO_Pin_4);
ABE;c++;break;}
case 2:{
GPIO_SetBits(GPIOA,GPIO_Pin_4);
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
ABE;c++;break;}
case 3:{
GPIO_SetBits(GPIOA,GPIO_Pin_3);
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
ABE;c++;break;}
case 4:{
GPIO_SetBits(GPIOA,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_1);
ABE;c++;break;}
case 5:{
GPIO_SetBits(GPIOA,GPIO_Pin_1);
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
ABE;c++;break;}
case 99:{break;}
}
}
if(c>=6)
{c=0;}
}
}`
