21ic问答首页 - 【求助贴】keilc51开发CH559单片机的奇怪BUG,求大佬帮看一眼
【求助贴】keilc51开发CH559单片机的奇怪BUG,求大佬帮看一眼
tyfk2022-01-03
测试程序:
UINT8 test0=0X5F;
UINT16 test1=0X5F;
printf("DEBUG:%02X %02X %02X %02X %02X", test0, test1, 0X5F&0X07, test0&0x07, test1&0x07);
串口打印结果:
[22:36:39.658]收←◆DEBUG:5F00 5F07 700 7C9 2048
两个变量都改成UINT8的结果:
[22:41:16.502]收←◆DEBUG:5F5F 707 708 9A51 C920
两个变量都改成UINT16的结果:
[22:40:20.898]收←◆DEBUG:5F 5F 700 700 783
单片机是51内核的,其它地方也经常遇到赋值错误的奇怪BUG,不知道是不是开发平台有问题,有一些设置为UINT16就没BUG,改成UINT8就有
UINT8 test0=0X5F;
UINT16 test1=0X5F;
printf("DEBUG:%02X %02X %02X %02X %02X", test0, test1, 0X5F&0X07, test0&0x07, test1&0x07);
串口打印结果:
[22:36:39.658]收←◆DEBUG:5F00 5F07 700 7C9 2048
两个变量都改成UINT8的结果:
[22:41:16.502]收←◆DEBUG:5F5F 707 708 9A51 C920
两个变量都改成UINT16的结果:
[22:40:20.898]收←◆DEBUG:5F 5F 700 700 783
单片机是51内核的,其它地方也经常遇到赋值错误的奇怪BUG,不知道是不是开发平台有问题,有一些设置为UINT16就没BUG,改成UINT8就有
赞0
评论
2022-01-04
赞0
评论
2022-01-04
赞0
你完全是掉到了printf的坑里。
printf要求格式字串和后面的参数要匹配,你这个就是典型的不匹配。
评论
2022-01-04
赞0
#ifndef UINT8
typedef unsigned char UINT8;
#endif
#ifndef UINT16
typedef unsigned short UINT16;
#endif
评论
2022-01-03
您需要登录后才可以回复 登录 | 注册