【发布时间】:2013-12-20 01:30:43
【问题描述】:
在 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 分配给 char 变量。
【问题讨论】: