在线时间0 小时
UID376731
ST金币0
蝴蝶豆0
注册时间2012-8-2
新手上路
- 最后登录
- 1970-1-1
|
a0a.1 0b0c
在下刚刚入门STM8,用的是STM8S105C6,写按键程序的时候出现问题,想请各路大侠帮帮忙,看看该怎样解决
按键的初始化程序如下
GPIO_Init(GPIOC, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7, GPIO_MODE_IN_FL_NO_IT);
GPIO_Init(GPIOG, GPIO_PIN_0|GPIO_PIN_1, GPIO_MODE_IN_PU_NO_IT);
GPIO_Init(GPIOE, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);
主程序部分
while(1)
{
// LED1(H);
//LED2(H);
//GPIO_WriteHigh(GPIOA, GPIO_PIN_3|GPIO_PIN_4);
//GPIO_WriteLow(GPIOA, GPIO_PIN_3|GPIO_PIN_4);
BitStatus up;
BitStatus down;
BitStatus center;
BitStatus back;
BitStatus int_1;
up = GPIO_ReadInputPin(GPIOG, GPIO_PIN_0);
down=GPIO_ReadInputPin(GPIOC, GPIO_PIN_7);
center=GPIO_ReadInputPin(GPIOC, GPIO_PIN_6);
back=GPIO_ReadInputPin(GPIOC, GPIO_PIN_5);
int_1 = GPIO_ReadInputPin(GPIOG, GPIO_PIN_1);
if (up == RESET) //SET or RESET
{
LED1(H);
LED2(L);
LED3(L);
LED4(L);
}
if (int_1 == RESET) //SET or RESET
{
LED1(L);
LED2(H);
LED3(L);
LED4(L);
}
if(down==RESET)
{
LED1(L);
LED2(L);
LED3(H);
LED4(L);
}
if(back==RESET)
{
LED1(L);
LED2(L);
LED3(L);
LED4(H);
}
}
问题:
如果注释掉后面两个if语句,只用PG0,PG1,发现程序正常,可实现LED1和LED2之间的切换。可是加上后面两个if之后,就有问题了,LED3常亮LED4,按键失去功能,该怎样解决。附上原理图 |
-
|