#include "stm32f10x.h"
u8 ReadValue;
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
//void delay_ms(u16 time)
//{
// u16 i=0;
// while(time--)
// {
// i=12000; //自己定义
// while(i--) ;
// }
//}
void LED_config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能PB,PE端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5
GPIO_SetBits(GPIOC,GPIO_Pin_13);
}
void GPIO_config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); /*使能SWD 禁用JTAG*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
int main(void)
{
GPIO_config(); //PE.5 输出高
LED_config();
while(1)
{
ReadValue = GPIO_ReadInputData(GPIOB);//获取值
ReadValue= ReadValue&0x1f;
switch(ReadValue)
{
case 0x01: GPIO_SetBits(GPIOC,GPIO_Pin_13); break;
case 0x03: GPIO_ResetBits(GPIOC,GPIO_Pin_13);break;
}
}
}
|