标题:
stm32f103单片机固件库编程按键检测源码
[打印本页]
作者:
xiexuedi
时间:
2018-10-25 22:03
标题:
stm32f103单片机固件库编程按键检测源码
使用stm32f103的GPIO端口检查按键源码
源程序如下:
#include "stm32f10x.h" //头文件
#include "bsp_led.h"
#include "bsp_key.h"
#define KEY1 KEY_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN)
#define KEY2 KEY_Scan(KEY2_GPIO_PORT,KEY2_GPIO_PIN)
char a;
char b;
void delay(uint32_t count)
{
for(;count!=0;count--);
}
void Output_Auto(void)
{
LED_R(ON);
// LED_G(ON);
// LED_B(ON);
delay(0x8FFFFF);
LED_R(OFF);
LED_G(OFF);
LED_B(OFF);
// LED_R(ON);
LED_G(ON);
// LED_B(ON);
delay(0x8FFFFF);
// LED_R(OFF);
LED_G(OFF);
LED_B(OFF);
// LED_R(ON);
// LED_G(ON);
LED_B(ON);
delay(0x8FFFFF);
// LED_R(OFF);
LED_G(OFF);
LED_B(OFF);
LED_R(ON);
LED_G(ON);
// LED_B(ON);
delay(0x8FFFFF);
LED_R(OFF);
LED_G(OFF);
// LED_B(OFF);
LED_R(ON);
// LED_G(ON);
LED_B(ON);
delay(0x8FFFFF);
LED_R(OFF);
// LED_G(OFF);
LED_B(OFF);
// LED_R(ON);
LED_G(ON);
LED_B(ON);
delay(0x8FFFFF);
// LED_R(OFF);
LED_G(OFF);
LED_B(OFF);
LED_R(ON);
LED_G(ON);
LED_B(ON);
delay(0x8FFFFF);
LED_R(OFF);
LED_G(OFF);
LED_B(OFF);
LED_R(OFF);
LED_G(OFF);
LED_B(OFF);
delay(0x8FFFFF);
LED_R(ON);
LED_G(ON);
//LED_B(ON);
delay(0xCFFFD);
LED_R(OFF);
//LED_B();
delay(0xCFFFD);
}
void Output_R(void)
{
LED_R(ON);
LED_G(OFF);
LED_B(OFF);
}
void Output_G(void)
{
LED_R(OFF);
LED_G(ON);
LED_B(OFF);
}
void Output_B(void)
{
LED_R(OFF);
LED_G(OFF);
LED_B(ON);
}
void Output_R_G(void)
{
LED_R(ON);
LED_G(ON);
LED_B(OFF);
}
void Output_R_B(void)
{
LED_R(ON);
LED_G(OFF);
LED_B(ON);
}
void Output_G_B(void)
{
LED_R(OFF);
LED_G(ON);
LED_B(ON);
}
void Output_All(void)
{
LED_R(ON);
LED_G(ON);
LED_B(ON);
}
void Output_Null(void)
{
LED_R(OFF);
LED_G(OFF);
LED_B(OFF);
}
int main(void)
{
a=0;
b=0;
LED_GPIO_Config();
KEY_GPIO_Config();
LED_R(OFF);
LED_G(OFF);
LED_B(OFF);
while(1)
{
if(KEY1 == KEY_ON)
{
delay(0x1FFF);
//a=1;
if(KEY1 == KEY_ON && b == 0)
{
Output_R();
b =1;
}
else if(KEY1 == KEY_ON && b == 1)
{
Output_G();
b =2;
}
else if(KEY1 == KEY_ON && b == 2)
{
Output_B();
b = 3;
}
else if(KEY1 == KEY_ON && b == 3)
{
Output_R_G();
b = 4;
}
else if(KEY1 == KEY_ON && b == 4)
{
Output_R_B();
b = 5;
}
else if(KEY1 == KEY_ON && b == 5)
{
Output_G_B();
b = 6;
}
else if(KEY1 == KEY_ON && b == 6)
{
Output_All();
b = 7;
}
else if(KEY1 == KEY_ON && b == 7)
{
Output_Null();
b = 0;
}
// else a=0;
}
if(KEY2==KEY_ON)
{
delay(0x0FFF);
if(KEY2==KEY_ON)
{
Output_Auto();
}
else Output_Null();
}
}
}
复制代码
所有资料51hei提供下载:
13-GPIO输入-按键检测.rar
(283.18 KB, 下载次数: 8)
2018-10-25 23:17 上传
点击文件名下载附件
程序源码
下载积分: 黑币 -5
作者:
admin
时间:
2018-10-25 23:17
补全原理图或者详细说明一下电路连接即可获得100+黑币
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1