STM32的按键点灯
上代码
#include "sys.h"
#include "delay.h"
#include "usart.h"
#define KEY PBin(0)
int k=0;
void Key()
{
if(KEY==0)
{
delay_ms(800);
while(!KEY); //等待按键松开
k++;
if(k==6)
{
k=0;
}
}
}
int main(void)
{
Stm32_Clock_Init(9);
delay_init(72);
RCC->APB2ENR|=1<<2;
RCC->APB2ENR|=1<<3;
JTAG_Set(0x1);
GPIOA->CRL=0X33333333;
GPIOB->CRL=0X88888888; //上拉/下拉的输入模式
GPIOA->ODR=0X00000000; //给PA全赋值为0
GPIOB->ODR=0X0000FFFF; //
delay_ms(8000);
while(1)
{
Key(); //按键检测函数
switch(k)
{
case 1:PAout(0)=1;break;
case 2:PAout(1)=1;break;
case 3:PAout(2)=1;break;
case 4:PAout(3)=1;break;
default:GPIOA->ODR=0X00000000;break; //让灯全灭
}
}
}
对应的电路图仿真