明显这句错了啊num0=~num0; 不应该使用按位取反操作,按位取反操会让num0由0x00变成0xFF,当num0==0xFF时,执行P2=a[num0];就会导致一个致使错误“数组越界”,系统会出现你想不到的现象。 基于你的思路,现有两种改法: 1、删除unsigned char a[]={0xff,0x00}; 把P2=a[num0]修改成P2=num0 2、其它地方不变,把num0 =~num0;修改成 num0 = num0 > 0 ? 0 : 1; |
i num0=~num0; 这句,因为前面定义了这个数组 unsigned char a[]={0xff,0x00};,所以这里也要用数组 |
XCYYLX 发表于 2022-11-22 20:30 好的感谢你 |
中断有问题,得改一下 |
太感谢你了大佬 |
![]() |