初级会员

- 积分
- 170
- 金钱
- 170
- 注册时间
- 2015-8-10
- 在线时间
- 39 小时
|
1金钱
本帖最后由 不会啊不会 于 2016-7-20 12:07 编辑
#include "stm32f10x_GPIO.h"
#define KEY1 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)
#define KEY2 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)
#define KEY3 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)
void Key_Init(void)
{
GPIO_InitTypeDef GG;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);
GG.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;
GG.GPIO_Mode = GPIO_Mode_Out_PP;
GG.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GG);
GG.GPIO_Pin = GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13;
GG.GPIO_Mode = GPIO_Mode_IPU;
GG.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GG);
GPIO_SetBits(GPIOB,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
}
其他就按键检测和main里的循环检测了,无关紧要,就不贴了。
按键按下为0,但是debug的时候GPIO_ReadInputDataBit一直为1啊.按下的时候一直检测不到0.
同样的在其他程序debug的时候是可以的。使用的是内部晶振,为什么啊
debug看寄存器的话,明明没有定义PB0,1,但是那两个脚的IDR一直在0,1,0,1,地跳---------------------------------------
完结了,是我傻,没开锁存器。再见。。。
|
|