|
先放上一段代码:
运行场景: keil MDK5 , stm32 ARM cpu
uint8_t load_lsh(uint8_t cdt[])
{
uint8_t rbuf[20];
uint8_t a,b,c,d;
I2C_EE_BufferRead(rbuf, ADDR_LSH, 8);
a = rbuf[0];
b = rbuf[1];
c = rbuf[2];
d = rbuf[3];
if (a==(~c))
{
return 2;
}
else
{
return 0 ;
}
}
看了代码之后,你有没有发现任何异常和问题?
如果没有,那恭喜你,你和我一样,都掉到坑里去了。
此时,如果你的代码很少,那或许你还是幸运的。但如果你的
项目代码很多,比如多达几千,几万甚至几十万行,那这个坑坑可能要让你
花上几个小时,或几天不等才爬出来。
如果你很容易的就看出其中问题,很大概率你就是高手或大神,那么请您不吝指教,
下面回帖给我们讲解一下,让我们也可以知其然也知其所以然。
本“开发坑”栏目的目的就是希望把开发路上曾经碰到的坑标记标明出来,让后面看到的攻城狮直接绕过去。
总结而言,本栏目宗旨就是让辛苦的攻城狮们可以减少一点必须花在工作上的时间,把省出来的
时间用来:多给父母打个电话,多陪伴一下女朋友,多和孩子玩一会,多去看一看风景等等,
让未来多些幸福快乐,少些遗憾。
下面是修改后能正确工作的程序:
uint8_t load_lsh(uint8_t cdt[])
{
uint8_t rbuf[20];
uint8_t a,b,c,d;
I2C_EE_BufferRead(rbuf, ADDR_LSH, 8);
a = rbuf[0];
b = rbuf[1];
c = ~rbuf[2]; ///
d = ~rbuf[3];
//if (a==(~c)) ///bad here
if (a==c) ///OK here
{
return 2;
}
else
{
return 0 ;
}
}
www.52jike.com (吾爱极客) ruanzhuo 原创,转载请注明出处。
|
|