1.key.h
#ifndef _KEY_H
#define _KEY_H
#include "stm32f10x.h"
void KEY_INIT(void);
#endif
2.key.c
#include "key.h"
#include"stm32f10x.h"
void KEY_INIT(void)
{ GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA , ENABLE);
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;
GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_15;
GPIO_Init(GPIOA, &GPIO_InitStruct);
}
3.led.h
#ifndef _LED_H
#define _LED_H
#include "stm32f10x.h"
void LED_Init(void);
#endif
4. led.c
#include "led.h"
#include "stm32f10x.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8 ;
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
GPIO_Init( GPIOA, & GPIO_InitStructure);
GPIO_SetBits(GPIOA, GPIO_Pin_8);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2 ;
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
GPIO_Init( GPIOD, & GPIO_InitStructure);
GPIO_SetBits(GPIOD, GPIO_Pin_2);
}
5.mian.c
#include "stm32f10x.h"
#include"led.h"
#include "delay.h"
#include"key.h"
int main(void)
{
LED_Init();
delay_init();
KEY_INIT();
while(1)
{
if(!GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5))
{
delay_ms(20);
if(!GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5))
{GPIO_ResetBits(GPIOA, GPIO_Pin_8);
}
}
else
{
GPIO_SetBits(GPIOA, GPIO_Pin_8);
}
if(!GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15))
{
delay_ms(20);
if(!GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15))
{GPIO_ResetBits(GPIOD, GPIO_Pin_2);
}
}
else
{
GPIO_SetBits(GPIOD, GPIO_Pin_2);
}
}
}
6.对应关系
LED0 PA8;
LED1 PD2;
KEY0 PC5;
KEY1 PA15;
7.原理图
版权声明:本文为CSDN博主「艾伦13」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_55741528/article/details/121276425
暂无评论