原子哥,您好!
我在做按键输入程序实验的时候,我没有采用,你们的模块化编程的方法,然后直接编写程序。现在出现问题是,把程序下到开发板之后,没有反应。请看程序:
/***************************************************************
* 文件名 : main.c
* 描述 : 该程序使用库函数实现了STM32的GPIO基本控制
* 创建人 : annysky,2012年8月
* 版本号 : V1.0
***************************************************************/
#include "stm32f10x.h"
#include "delay.h"
#include "key.h"
#define KEY0 GPIO_Pin_13
//#define KEY1 PAin(15)
//#define KEY2 PAin(0)
/*************************************************************
* 名称 : Led_Init(void)
* 功能 : GPIO口的初始化
* 输入 : 无
* 输出 : 无
**************************************************************/
void Led_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //申明GPIO_InitTypeDef结构类型的变量 GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //配置GPIOA的时钟
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8; //配置GPIOA的第8引脚
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //配置GPIOA的第8引脚的翻转速率
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //配置GPIOA的第8引脚的工作模式:推挽输出
GPIO_Init(GPIOA,&GPIO_InitStructure); //调用GPIO_Init()函数,初始化GPIOA
GPIO_SetBits(GPIOA,GPIO_Pin_8);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOD,&GPIO_InitStructure);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
}
void Key_Init()
{
GPIO_InitTypeDef GPIO_InitStructure; //申明GPIO_InitTypeDef结构类型的变量 GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //配置GPIOA的时钟
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13|GPIO_Pin_15; //配置GPIOA的第13引脚和第15脚
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //配置GPIOA的第13、15引脚的翻转速率
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //配置GPIOA的第13、15引脚的工作模式:上拉输入
GPIO_Init(GPIOA,&GPIO_InitStructure); //调用GPIO_Init()函数,初始化GPIOA
}
/*************************************************************
* 名称 : int main(void)
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
**************************************************************/
int main(void)
{
SystemInit(); //系统时钟初始化为72M SYSCLK_FREQ_72MHz
delay_init(72); //延时函数初始化
Led_Init(); //LED端口初始化
Key_Init();
while(1)
{
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
if(KEY0==0)
{
delay_ms(30) ;
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
GPIO_ResetBits(GPIOD,GPIO_Pin_2); //给GPIOD的第2脚赋0
// break;
}
}
}
这个不知道什么原因。只想按照自己的想法去改写程序。请原子哥指点一二。非常感谢
|