嵌出式002

在这里插入代码片
按钮控制LED
1.现在.H文件中进行函数的声明
#ifndef __LED_H
#define __LED_H

void LED_Init(void);//LED时钟配置的初始化
void LED1_ON(void);//LED1开启也就是低电平点亮
void LED1_OFF(void);//LED1关闭也就是高电平关闭
void LED1_Turn(void);
void LED2_ON(void);
void LED2_OFF(void);
void LED2_Turn(void);

#endif
2.在.C文件中完成对LED头文件中函数的具体功能实现
void LED_Init(void)
{
	/*开启时钟*/
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);		//开启GPIOA的时钟
	
	/*GPIO初始化 输出模式 端口的选择 速度 完成初始化*/
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);						//将PA1和PA2引脚初始化为推挽输出
	
	/*设置GPIO初始化后的默认电平*/
	GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);				            //设置PA1和PA2引脚为高电平
}

void LED1_ON(void)
{
	GPIO_ResetBits(GPIOA, GPIO_Pin_1);		//设置PA1引脚为低电平
}
void LED1_OFF(void)
{
	GPIO_SetBits(GPIOA, GPIO_Pin_1);		//设置PA1引脚为低电平
}
其他的就是一样的



void Key_Init(void)
{
	/*开启时钟*/
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);		//开启GPIOB的时钟
	
	/*GPIO初始化*/
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//上拉输入
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_11;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);						//将PB1和PB11引脚初始化为上拉输入
}


GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)获取键值

主函数

uint8_t KeyNum;		//定义用于接收按键键码的变量

int main(void)
{
	/*模块初始化*/
	LED_Init();		//LED初始化
	Key_Init();		//按键初始化
	
	OLED_Init();		//OLED初始化
	while (1)
	{
   
		KeyNum = Key_GetNum();		//获取按键键码
		 OLED_ShowNum(2, 1,KeyNum, 1);
		if (KeyNum == 1)			//按键1按下
		{
      //OLED_ShowNum(2, 1, 1, 1);
      Delay_ms(100);
			LED1_Turn();			//LED1翻转
      OLED_ShowNum(2, 1, 2, 1);
		}
		
		if (KeyNum == 2)			//按键2按下
		{//OLED_ShowNum(2, 1, 3, 1);
       Delay_ms(100);
			LED2_Turn();			//LED2翻转
     // OLED_ShowNum(2, 1, 4, 1);
		}
    
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值