📄 main.c
字号:
/************************************************************
* 文件名:main.c
* 功能描述:主程序
************************************************************/
#include "STM32Lib\\stm32f10x.h"
#include "hal.h"
void Delay(u16 n);
//输出宏定义
#define LED1_ON GPIO_ResetBits(GPIOA, GPIO_Pin_8)
#define LED1_OFF GPIO_SetBits(GPIOA, GPIO_Pin_8)
#define LED2_ON GPIO_ResetBits(GPIOD, GPIO_Pin_11)
#define LED2_OFF GPIO_SetBits(GPIOD, GPIO_Pin_11)
#define LED3_ON GPIO_ResetBits(GPIOC, GPIO_Pin_7)
#define LED3_OFF GPIO_SetBits(GPIOC, GPIO_Pin_7)
#define LED4_ON GPIO_ResetBits(GPIOC, GPIO_Pin_5)
#define LED4_OFF GPIO_SetBits(GPIOC, GPIO_Pin_5)
#define LED5_ON GPIO_ResetBits(GPIOB, GPIO_Pin_9)
#define LED5_OFF GPIO_SetBits(GPIOB, GPIO_Pin_9)
#define LED6_ON GPIO_ResetBits(GPIOB, GPIO_Pin_8)
#define LED6_OFF GPIO_SetBits(GPIOB, GPIO_Pin_8)
#define LED7_ON GPIO_ResetBits(GPIOB, GPIO_Pin_5)
#define LED7_OFF GPIO_SetBits(GPIOB, GPIO_Pin_5)
#define LED8_ON GPIO_ResetBits(GPIOB, GPIO_Pin_0)
#define LED8_OFF GPIO_SetBits(GPIOB, GPIO_Pin_0)
//输入宏定义
#define GET_LEFT() (!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_3))
#define GET_UP() (!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_4))
#define GET_RIGHT() (!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_5))
#define GET_DOWN() (!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_6))
int main(void)
{
u16 speed=2000;
u8 turn=0;
ChipHalInit(); //片内硬件初始化
ChipOutHalInit(); //片外硬件初始化
for(;;)
{
if(turn==0)
{
LED8_OFF;
LED1_ON;
Delay(speed);
LED1_OFF;
LED2_ON;
Delay(speed);
LED2_OFF;
LED3_ON;
Delay(speed);
LED3_OFF;
LED4_ON;
Delay(speed);
LED4_OFF;
LED5_ON;
Delay(speed);
LED5_OFF;
LED6_ON;
Delay(speed);
LED6_OFF;
LED7_ON;
Delay(speed);
LED7_OFF;
LED8_ON;
Delay(speed);
}
else
{
LED1_OFF;
LED8_ON;
Delay(speed);
LED8_OFF;
LED7_ON;
Delay(speed);
LED7_OFF;
LED6_ON;
Delay(speed);
LED6_OFF;
LED5_ON;
Delay(speed);
LED5_OFF;
LED4_ON;
Delay(speed);
LED4_OFF;
LED3_ON;
Delay(speed);
LED3_OFF;
LED2_ON;
Delay(speed);
LED2_OFF;
LED1_ON;
Delay(speed);
}
//判断键盘输入
if(GET_LEFT())
{
turn=1;
}
else if(GET_RIGHT())
{
turn=0;
}
if(GET_UP())
{
if(speed>100)
speed-=100;
}
else if(GET_DOWN())
{
if(speed<2000)
speed+=100;
}
}
}
//延迟函数
void Delay(u16 speed)
{
u16 i;
while(speed!=0)
{
speed--;
for(i=0;i<400;i++);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -