⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 ARM_CORTEX-M3应用实例开发详解光盘
💻 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 + -