本帖最后由 wsr2580 于 2023-2-20 15:35 编辑
我找到我这里出现的问题了,因为C51架构使用的是大端模式存放数据,但是我常用的ESP32、STM32是小端模式;大小端模式除了EEPROM等存储默认会是该端序以外,还会影响判断。
大端模式正确的获取数据并进行比较的程序应该是:
-
- char wktcl, wktch;
- // ...
- wktcl = WKTCL;
- wktch = WKTCH & 0x7f; // 这个要与0x7f,是个坑,要看参考手册
- printf("%c %c", wktcl, Hex2Char(wktcl >> 4));
- printf("%c", Hex2Char(wktcl));
- printf("%c %c", wktch, Hex2Char(wktch >> 4));
- printf("%c", Hex2Char(wktch));
- if(wktcl == (char)255 && wktch == (char)127) {
- P55 = ~P55; // 此时LED灯能闪烁
- }
复制代码
|