找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于C语言数组导致我oled不再点亮的问题

查看数: 2160 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-5-26 16:02

正文摘要:

我正在通过51单片机在oled上画直线,可一旦我定义了oled_RAM[128][8]数组,然后我的oled就不亮了,之前写的多级菜单也没作用了,此外我已经更改target里的memory model为large了。我不知道是否与我定义的引脚有关, ...

回复

ID:624769 发表于 2023-6-23 22:23
zctwss321 发表于 2023-6-23 15:38
我的用   STC12C5A60S2内部集成RAM 1280字节,其中 内部RAM (data):256 Byte 内部扩展RAM (xdata):1024 ...

你肯定 KEIL 里面用 large 了,你要用 Small 然后 uchar xdata  displayRAM[8][128]; 才行
ID:57657 发表于 2023-6-23 20:40
用unsigned char xdata指针检测下XRAM容量,数组越界会导致其他变量值异常修改。
ID:883242 发表于 2023-6-23 16:46
zctwss321 发表于 2023-6-23 15:38
我的用   STC12C5A60S2内部集成RAM 1280字节渲� 内部RAM (data):256 Byte 内部扩展RAM (xdata):1024 ...

你查编译生成的m51文件,数组显然越界了。
ID:166284 发表于 2023-6-23 15:39
munuc_w 发表于 2023-5-26 16:17
选用的CPU的RAM是多大的?注意空间。

我的用   STC12C5A60S2内部集成RAM 1280字节,其中 内部RAM (data):256 Byte 内部扩展RAM (xdata):1024     也是出现了这个问题,  非常奇怪啊 ,  uchar displayRAM[8][127]或者uchar displayRAM[7][128]都没问题, 就是 uchar displayRAM[8][128] 会出现问题.....无解的存在,  按理说RAM是足够用了啊
ID:166284 发表于 2023-6-23 15:38
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是足够用了啊
ID:1080048 发表于 2023-5-26 20:59
5楼说的对,抱歉之前一直没有看数据手册,我为我无知道歉,非常感谢五楼对我的指正
ID:624769 发表于 2023-5-26 19:33
qaqrbt 发表于 2023-5-26 16:50
确实如2楼所说,我使用的是stc89c52rc,ram是8*128,更改memory model之后数全到xdata了,导致oled显示不出 ...

你到底看过手册么? 你哪来的自信 stc89c52rc  RAM 是 8x128 的?
所有  STC89xxxxxxRC  RAM 只有 512,  其中 XDATA 只有 256
只有 STC89xxxxxxRD 才有 1024 的 XDATA
ID:123289 发表于 2023-5-26 16:59
先查一下芯片的内存配置。
ID:1080048 发表于 2023-5-26 16:50
确实如2楼所说,我使用的是stc89c52rc,ram是8*128,更改memory model之后数全到xdata了,导致oled显示不出来,不过在画点的时候又出现了卡顿(没啥反应)的现象,我在想想吧
ID:752974 发表于 2023-5-26 16:17
选用的CPU的RAM是多大的?注意空间。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表