在8051微控制器复位时,所有端口引脚锁存器的值都被设置为“1”。现在我正在阅读这本书《嵌入式C编程》,它指出下面代码的问题是可能会让开发人员产生错误的安全感:
// Assume nothing written to port since reset
// – DANGEROUS!!!
Port_data = P1;
如果在以后的某个时间,有人修改程序包含一个写入所有或部分相同端口的例程,这段代码通常将无法按要求工作:
unsigned char Port_data;
P1 = 0x00;
. . .
// Assumes nothing written to port since reset
// – WON’T WORK BECAUSE SOMETHING WAS WRITTEN TO PORT ON RESET
Port_data = P1;
有熟悉嵌入式c的人能否解释一下为什么这段代码无法正常工作?它只是将0赋值给一个字符变量。