想实现用灯提示选中的功能,即同一时间只能有一个灯是亮的,但是烧录运行的情况是第一次按哪个键哪个灯就亮,后面怎么按都不会有变化。
感觉你key_scan函数陷入死循环了
key2scan 和key3scan呢
有硬件条件的话就DEBUG一下
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==0) // 为零时才进入
{
Delay_ms(10);
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==1) // 上面都为零了,这句能实现吗?
{
Delay_ms(10);
keynum = 1;
}
另,应该是 应该是这样吧
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==1) // 为1时才进入
{
Delay_ms(10);
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==1) // 如果为还为1,即不是按钮抖动
{
Delay_ms(10);
keynum = 1;
}
另,网上有开发板的教程,一堆一堆。