在下刚刚入门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,按键失去功能,该怎样解决。附上原理图 |
从零开始操作STM8寄存器(风驰iCreate奉献)
【中文资料】初学STM8库函数的中文帮助软件
绝对经典的中文STM8学习手册,淘宝上学习板资料,友情大放送!
【原创教程】风驰iCreate独家开源STM8 27个例程和10多万字的pdf教程
STM8的LCD1602 4线驱动,为什么不工作
【精华资料】由零开始开发STM8
STM8S 的触摸库是如何在主程序中查询键的呢、
【精华资料】STM8的C语言编程1-14讲完整版
【精品教程】STM8系列单片机入门教程系列
STM8 第一次进中断不准【悬赏问答】
RE:关于STM8按键问题
RE:关于STM8按键问题