zctwss321 发表于 2023-6-23 15:38 你肯定 KEIL 里面用 large 了,你要用 Small 然后 uchar xdata displayRAM[8][128]; 才行 |
用unsigned char xdata指针检测下XRAM容量,数组越界会导致其他变量值异常修改。 |
zctwss321 发表于 2023-6-23 15:38 你查编译生成的m51文件,数组显然越界了。 |
munuc_w 发表于 2023-5-26 16:17 我的用 STC12C5A60S2内部集成RAM 1280字节,其中 内部RAM (data):256 Byte 内部扩展RAM (xdata):1024 也是出现了这个问题, 非常奇怪啊 , uchar displayRAM[8][127]或者uchar displayRAM[7][128]都没问题, 就是 uchar displayRAM[8][128] 会出现问题.....无解的存在, 按理说RAM是足够用了啊 |
yzwzfyz 发表于 2023-5-26 16:59 我的用 STC12C5A60S2内部集成RAM 1280字节,其中 内部RAM (data):256 Byte 内部扩展RAM (xdata):1024 也是出现了这个问题, 非常奇怪啊 , uchar displayRAM[8][127]或者uchar displayRAM[7][128]都没问题, 就是 uchar displayRAM[8][128] 会出现问题.....无解的存在, 按理说RAM是足够用了啊 |
5楼说的对,抱歉之前一直没有看数据手册,我为我无知道歉,非常感谢五楼对我的指正 |
qaqrbt 发表于 2023-5-26 16:50 你到底看过手册么? 你哪来的自信 stc89c52rc RAM 是 8x128 的? 所有 STC89xxxxxxRC RAM 只有 512, 其中 XDATA 只有 256 只有 STC89xxxxxxRD 才有 1024 的 XDATA |
先查一下芯片的内存配置。 |
确实如2楼所说,我使用的是stc89c52rc,ram是8*128,更改memory model之后数全到xdata了,导致oled显示不出来,不过在画点的时候又出现了卡顿(没啥反应)的现象,我在想想吧 |
选用的CPU的RAM是多大的?注意空间。 |