数码之家

 找回密码
 立即注册
搜索
查看: 3894|回复: 50

[Arduino] u8g库是不错,就是费内存,内存都被它占光了,怎么办

[复制链接]
发表于 2020-3-7 09:47:36 | 显示全部楼层 |阅读模式
328单片机就2K内存,用于存放数据
用u8g显示图形等,比较方便,就是占用内存太大
起码60-70%,就剩下一点了
大家有什么好的解决方案
























本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 5家元 +94 收起 理由
aec + 20 謝謝分享
hfsp + 20 謝謝分享
有点不烧 + 20 謝謝分享
zhuqing-1920 + 14
花生仔 + 20 謝謝分享

查看全部打赏

发表于 2020-3-7 10:08:49 | 显示全部楼层
外挂spi
或者对程序进行精简,只保留需要的部分

打赏

参与人数 1家元 +10 收起 理由
人艰不拆了 + 10

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-7 10:12:07 | 显示全部楼层
upkon 发表于 2020-3-7 10:08
外挂spi
或者对程序进行精简,只保留需要的部分

外挂spi什么意思呢?
回复 支持 反对

使用道具 举报

发表于 2020-3-7 10:17:34 来自手机浏览器 | 显示全部楼层
外挂ram,精炼程序

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-3-7 10:35:47 | 显示全部楼层
本帖最后由 la45088d1 于 2020-3-7 10:37 编辑

一个OLED屏是128*64个像素点,那个库肯定在内部定义了这个128*64/8=1K字节的缓冲区,所以只要用了那个库就得占用那么多内存没法子的。
如果要牺牲速度,你试试自己编写一个库,不用定义任何缓冲区直接操作屏幕,采用读屏幕数据,修改,写入的方式。只是屏幕响应肯定比内部SRAM慢得多,而且还复杂。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-7 10:39:11 | 显示全部楼层
la45088d1 发表于 2020-3-7 10:35
一个OLED屏是128*64个像素点,那个库肯定在内部定义了这个128*64/8=1K字节的缓冲区,所以只要用了那个库就 ...

哈哈,这个难度有点大:loveliness:
回复 支持 反对

使用道具 举报

发表于 2020-3-7 10:40:45 | 显示全部楼层
所以2KB内存MCU或者更低的,就不要想着驱动屏了,不配。
只好使用读屏幕,修改数据,写屏幕的方法了。不过更加雪上加霜的是,有些控制器只支持在6800或者8080模式下的读操作,而IIC或者SPI不能读,一般的MCU不可能会用这种硬件接口,也没有FSMC接口模拟,所以只能用软件去模拟这个时序,更加麻烦和开销性能。
回复 支持 反对

使用道具 举报

发表于 2020-3-7 10:41:16 | 显示全部楼层
一句话,欢迎投入STM32怀抱。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-7 10:42:14 | 显示全部楼层
la45088d1 发表于 2020-3-7 10:41
一句话,欢迎投入STM32怀抱。

太复杂吧,以后再说吧,将就玩吧:titter:
回复 支持 反对

使用道具 举报

发表于 2020-3-7 11:44:24 来自手机浏览器 | 显示全部楼层
人艰不拆了 发表于 2020-3-7 10:42
太复杂吧,以后再说吧,将就玩吧

看看ebox,和arduino用起来差不多,跑stm32的

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-3-7 14:42:04 | 显示全部楼层
屏幕这东西还是得大内存才够的

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-3-7 16:20:31 | 显示全部楼层
:lol: 换成ESP8266 觉得不够强 就换成 ESP32

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-3-7 16:59:39 | 显示全部楼层
qingkong 发表于 2020-3-7 16:20
换成ESP8266 觉得不够强 就换成 ESP32

8266就足够上天了。。。上32那真是伤天害理了:biggrin:

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-7 17:05:24 | 显示全部楼层
qingkong 发表于 2020-3-7 16:20
换成ESP8266 觉得不够强 就换成 ESP32

你们说的到底什么啊,这玩意多少钱的都有,你们指的是哪种?给个图片看看
回复 支持 反对

使用道具 举报

发表于 2020-3-7 17:06:56 | 显示全部楼层
人艰不拆了 发表于 2020-3-7 17:05
你们说的到底什么啊,这玩意多少钱的都有,你们指的是哪种?给个图片看看 ...

找最便宜的,不超过20的一个模块。性能强悍。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-7 17:29:04 | 显示全部楼层
jpdd521 发表于 2020-3-7 17:06
找最便宜的,不超过20的一个模块。性能强悍。

全称叫什么名字?
是这个吗?看着也不很厉害啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2020-3-7 19:20:18 | 显示全部楼层
人艰不拆了 发表于 2020-3-7 17:29
全称叫什么名字?
是这个吗?看着也不很厉害啊

不厉害???可能不够专业是真的,但是肯定厉害

ESP系列关了WIFI都是单片机,这东西跑u8g那个测试动画比328快多多多了

它的硬件资源都是很大的,ROM 一般都有4M RAM也是很多滴
ESP32更是双核滴

  1. ESP8266 是高性能无线 SOC,以最低成本提供最大实用性,为 WiFi 功能嵌入其他系统提供无限可能。

  2.   特点
  3.   
  4.     802.11 b/g/n
  5.     内置Tensilica L106 超低功耗 32 位微型 MCU,主频支持 80 MHz 和160 MHz,支持 RTOS
  6.     内置10 bit高精度ADC
  7.     内置TCP/IP协议栈
  8.     内置TR 开关、balun、LNA、功率放大器和匹配网络
  9.     内置PLL、稳压器和电源管理组件,802.11b 模式下+20 dBm的输出功率
  10.     A-MPDU 、 A-MSDU 的聚合和 0.4 s的保护间隔
  11.     WiFi [url=home.php?mod=space&uid=3057940]@[/url] 2.4 GHz,支持 WPA/WPA2 安全模式
  12.     支持AT远程升级及云端OTA升级
  13.     支持 STA/AP/STA+AP 工作模式
  14.     支持 Smart Config 功能(包括 Android 和 iOS 设备)
  15.     HSPI 、UART、I2C、I2S、IR Remote Control、PWM、GPIO
  16.     深度睡眠保持电流为 10 uA,关断电流小于 5 uA
  17.     2 ms 之内唤醒、连接并传递数据包
  18.     待机状态消耗功率小于1.0 mW (DTIM3)
  19.     工作温度范围:-20℃- 85℃

  20. ESP8266 的 RAM 总共 160 KB。

  21. IRAM 空间为 64 KB: 前 32 KB 用作 IRAM,用来存放没有加 ICACHE_FLASH_ATTR 的代码,即 .text 段,会通过 ROM code 或二级 boot 从 SPI Flash 中的 BIN 中加载到 IRAM。 后 32 KB 被映射作为 iCache,放在 SPI Flash 中的,加了 ICACHE_FLASH_ATTR 的代码会被从 SPI Flash 自动动态加载到 iCache。

  22. DRAM 空间为 96 KB: 对于 Non-OS_SDK,前 80 KB 用来存放 .data/.bss/.rodata/heap,heap 区的大小取决于 .data/.bss/.rodata 的大小;还有 16 KB 给 ROM code 使用。 对于 RTOS_SDK,96 KB 用来存放 .data/.bss/.rodata/heap,heap 区的大小取决于 .data/.bss/.rodata 的大小。

  23. 一般用户可以使用的大约16K左右













  24. EPS32 :CPU和存储

  25. CPU 和存储

  26.     Xtensa® 32-bit LX7 单核处理器
  27.     7 级流水线架构
  28.     时钟频率高达 240 MHz
  29.     超低功耗协处理器
  30.     320 KB SRAM,128 KB ROM,16 KB RTC 内存
  31.     最大可支持 1 GB 外部 flash and SRAM
  32.     独立的指令和数据 cache

  33. IO 外设

  34.     43 个 GPIO 口
  35.     14 个电容式传感 IO
  36.     支持 SPI、I2C、I2S、UART、ADC/DAC 和 PWM 等各种标准外设
  37.     支持 LCD 接口(8-bit 并口 RGB、8080、6800 接口)
  38.     支持 8-/16-bit DVP 图像传感器接口,最高时钟频率支持到 40 MHz
  39.     支持全速 USB OTG


  40. • 供电电压: 2.2V 到 3.6V

复制代码


至于买么
自己折腾这玩ESP8266 d1 mini 合适。如果是联线 那么你上图那个大的合适,因为它还可以配个底座,就跟arduino nano那样的座子,腿和电就都引出来了

如果用的腿不多 EPS01s 可以玩玩(这个引出的腿太少)

ESP32就不说了 随便买吧 说实在的 我买了几个到现在都没排上用处,因为ESP8266对我就足够强大了
ESP32对我来说最直观的优点就是---可以直接把中文字库弄进去,直接显示汉字,而不用扣字了

打赏

参与人数 1家元 +20 收起 理由
人艰不拆了 + 20 熱心會員

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-3-7 19:28:52 | 显示全部楼层
能不能外挂个内存,24或25的芯片,这样就不担不够内存用了。

打赏

参与人数 1家元 +10 收起 理由
人艰不拆了 + 10 我很贊同

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-3-7 23:03:06 | 显示全部楼层
qingkong 发表于 2020-3-7 19:20
不厉害???可能不够专业是真的,但是肯定厉害

ESP系列关了WIFI都是单片机,这东西跑u8g那个测试动画比 ...

会点AVR,STM8/32,但是去官网下载了一些8266的资料,觉得还是有点无从下手,甚至就连那一点点的兴趣也没有了。

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-3-8 09:27:14 | 显示全部楼层
40560335 发表于 2020-3-7 23:03
会点AVR,STM8/32,但是去官网下载了一些8266的资料,觉得还是有点无从下手,甚至就连那一点点的兴趣也没 ...

要是自己玩 用arduino 或者 micropython 都好

这俩都不用去官网看它那个文档。。。。

ESP8266的话 arduino 大部分库都可以直接用 u8gt 更是没有问题

ESP32太强大了 还没怎么研究(当然也贵啊 ESP8266 d1 mini 咸鱼7块钱一片 ESP32最便宜的还得20多。。。:lol:)

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-12 00:55 , Processed in 0.265200 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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