led.c
来自「UCOS-III」· C语言 代码 · 共 49 行
C
49 行
#include "led.h"
#include "delay.h"
void LED_Init()
{
RCC->APB2ENR|=1<<8; //使能PORTG时钟
GPIOG->CRL&=0XFFFF0000;
GPIOG->CRL|=0X00003333;//PG.0 1 2 3推挽输出
GPIOG->ODR|=1<<0|1<<1|1<<2|1<<3; //PG.0 1 2 3输出高
}
void KEY_Init()
{
u32 temp=0x02;
temp<<=25;
RCC->APB2ENR|=1<<0; //开启辅助时钟
AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
AFIO->MAPR|=temp; //设置jtag模式
RCC->APB2ENR|=1<<2; //使能PORTA时钟
GPIOA->CRH&=0X0000FFFF;
GPIOA->CRH|=0X88880000;
GPIOA->ODR|=1<<12|1<<13|1<<14|1<<15; //PA.12 13 14 15上拉输入
}
//按键处理函数
//返回按键值
//0,没有任何按键按下
//1,KEY0按下
//2,KEY1按下
//3,KEY2按下 WK_UP
//注意此函数有响应优先级,KEY0>KEY1>KEY2!!
u8 KEY_Scan(void)
{
static u8 key_up=1;//按键按松开标志
if(key_up&&(KEY_GET(12)==0||KEY_GET(13)==0||KEY_GET(14)==0||KEY_GET(15)==0))
{
delay_ms(10);//去抖动
key_up=0;
if(KEY_GET(12)==0) return 1;
else if(KEY_GET(13)==0) return 2;
else if(KEY_GET(14)==0) return 3;
else if(KEY_GET(15)==0) return 4;
}
else if(KEY_GET(12)==1&&KEY_GET(13)==1&&KEY_GET(14)==1&&KEY_GET(15)==1)
key_up=1;
return 0;// 无按键按下
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?