小弟初学STM8,用查询法来检查K2(PD.7)按下否,如果按下,则LED2(PE.3)亮,再按下,LED2灭,但是烧录后,程序好像走到while(!bit_status2)后程序停住了,按下按键,灯亮,再按下,灯还是亮,无法灭。 按键函数如下,主程序只是调用这个函数,是哪里出了问题呢?真心求解。 void anjian_K2(void) //K2按下,LED2取反 { BitStatus bit_status2; bit_status2= GPIO_ReadInputPin(GPIOE, GPIO_PIN_3); if (!bit_status2 ) //SET or RESET { delay_ms(2000); if (!bit_status2) { GPIO_WriteReverse(GPIOD, GPIO_PIN_0); //LED2取反 while(!bit_status2); } } |
从零开始操作STM8寄存器(风驰iCreate奉献)
【中文资料】初学STM8库函数的中文帮助软件
绝对经典的中文STM8学习手册,淘宝上学习板资料,友情大放送!
【原创教程】风驰iCreate独家开源STM8 27个例程和10多万字的pdf教程
STM8的LCD1602 4线驱动,为什么不工作
【精华资料】由零开始开发STM8
STM8S 的触摸库是如何在主程序中查询键的呢、
【精华资料】STM8的C语言编程1-14讲完整版
【精品教程】STM8系列单片机入门教程系列
STM8 第一次进中断不准【悬赏问答】
RE:初学STM8的问题
那么if (!bit_status2 )=if(1)
while(!bit_status2)=while(1)
这个时候你应该在while()里面对bit_status2进行操作,不然他永远死到里面了。
回复:初学STM8的问题
RE:初学STM8的问题
回复:初学STM8的问题
我又试了一下,把while(!bit_status2)改成
while(!GPIO_ReadInputPin(GPIOE, GPIO_PIN_3)),程序就可以了。怪事!
回复:初学STM8的问题