STM8S105F的PE7接一个安键对地。配置成上拉输入,用万用表侧PE7,当按键不按下,始终是5V,在程序头上定义:_Bool KEY_IN @ PE_IDR:7; 定时器中断中判断:if(KEY_IN==0){},结果读出的始终是0,观察寄存器窗口发现 PE_IDR的第7位却是1,认为上述布尔定义不管用,改用读整个IDR:
unsigned char Read_PE ;
Read_PE = PE_IDR;
if((Read_PE&0x80)==0)
{}
这样处理后,大部分时候是正确的,但偶尔会出现错误,谁给个解释?
|