定义了 @eeprom unsigned char memoryProtected[] = {0x00,0xff,0xff,0xff }; unsigned char command[3]; 本想这样赋值 memoryProtected[(command[1]>>3)]|= (1<<(command[1]&0x07)); 结果CGSTM8崩溃 注册这行就没问题 然后就这样来试试 @eeprom unsigned char memoryProtected[] = {0x00,0xff,0xff,0xff };unsigned char command[3],TempAdd=0,TempValu=0; TempAdd=(command[1]&0x1f)>>3; TempValu=1<<(command[1]&0x07); // memoryProtected[TempAdd]|= TempValu; 去掉上一行的注册就崩溃 然后这样 memoryProtected[0]|= TempValu; memoryProtected[1]|= TempValu; memoryProtected[2]|= TempValu; memoryProtected[3]|= TempValu; 都没有问题 请指点 |
STM8S003F3U6 请求各位大佬支援,但是遇到如下问题。。。这样就一定是这颗芯片的问题吗?
STVD如何生成库文件
STM8 flash 库函数 startaddress = startaddress + ((uint32_t)BlockNum * FLASH_BLOCK_S
stm 8 flash 在RAM运行代码的问题,是不是库函数有问题 Library call (?sll32_l0_l0_a) from within a
STM 有能替代MCHC912B32CFUE8 / NXP的型号吗?
STM8S的CAN总线使用
STM8L151在使用DAC功能后严重发热
STM8 IIC SLAVE 400K
STM8S 定时器1互补输出pwm
STM8S003F3 NRST电压低,无法开机
评分
查看全部评分
这里没有做防溢出处理。
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
memoryProtected[(command[1]>>3)&0x03]|= (1<<(command[1]&0x07));
是啊!!!
超界了!!!
command[1]>>3
这里没有做防溢出处理。
是编译时编译器,就是STVD崩溃
不是运行时,再说,右移3位也没什么特别的啊
这个溢出的在编译时就会编译器崩溃?
STVD+comisc
问题不是右移,而是你要保证右移之后的值 小于等于3 !!!
评分
查看全部评分