今天在进行一段代码的测试时,出现了如下的问题:
代码一:
unsigned char readpinb,
readpinb=GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_0);
if(readpinb==1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_0); (1)
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_0); (2)
}
代码二:
unsigned char readpinb,
readpinb=GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_0);
if(readpinb!=1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_0); (3)
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_0); (4)
}
当运行第一段代码的时候,程序只能执行语句(2),语句(1)永远执行不到,试着对其进行修改,改为代码二的形式,这时程序对if进行判断,语句(3)、(4)可以交替执行到,即为预期实现。虽然可以实现但对其原因不甚了解,在此请教一下,还望5大家不吝赐教,多谢