stm8s003单片机写OLED的代码内存不够怎么办

stm8s003单片机写OLED的代码内存不够怎么办,第1张

stm8s008空间大小是8K 使用的时候会出现空间不够用的情况,这个时候要对软件进行一些设置,从而优化程序大小。1,修改优化等级,如下图所示,这样会优化掉无关的函数,将代码优化到最大程度2,如果代码有多个数组,而ram实际空间不够使用的时候,修改下面的参数,最大修改为0xfff。3,当二维数组定义完报错,无法容纳的时候,在数组前面加上NEAR可解决报错例如:NEAR u8 buff[10][10] = {};4,当代码还是很多的时候就要从代码逻辑和代码本身一点点的扣 能用数组代替的尽量不用代码,能用u8的不用u16

知识点:

1、认识元器件:Arduino UNO主控板、扩展板、LED灯模块

2、认识Mixly程序模块:数字输出、延时、循环

3、程序设计:顺序结构

任务一、点亮板载LED灯

1、程序编写

双击Mixly文件夹中Mixlyexe文件,即可打开Mixly软件:

目前使用Mixly软件0998

2、根据Arduino UNO3及驱动程序在电脑中的地址,在Mixly软件中选择相应的位置

本机Arduino UNO3是COM76(根据各自不同的配置而定)

3、点击输入/输出模块跳出对应选项

选择数字输出模块,点击左键拖动到空白区

管脚0处点击下拉菜单选择13(Arduino UNO3上的板载灯针对13号管脚)

同时把13号管脚设为高电平(点亮)

点击右下角的上传按键(编译的主要功能是检查程序的正确性)

直到左下角对话框中出现上传成功为止,上传期间请勿插拔数据线(出现其他提示,请仔细阅读前几节内容,完成Arduino UNO3主控板的驱动安装)

这是你会发现Arduino UNO3主控板和扩展板上有一个标有“L”的LED灯常亮,说明你的Arduino UNO3主控板和你的电脑已经正常通讯了。

任务二:点亮真实的LED灯

所需材料:Arduino UNO3主控板1、扩展板1、LED灯模块1

物理连接:

扩展板与主控板根据对应的针脚插好

取出一个LED模块,用连接线将其与10号管脚对应的三个管脚相连(注意插线时颜色的对应:红色基本代表电源正极VCC、黑色基本代表电源负极GND)

LED模块

硬件接线图

延续任务一的程序,把管脚13改为10(因为LED模块连接在10号管脚)

接下来增加延时功能,在“控制”菜单中找到“延时模块”,拖动至空白处并与“数字输出”模块拼接

(1000毫秒=1秒,1000微妙=1毫秒)

(相同的模块命令可以右击鼠标复制)

(把数字输出管脚10号设为低),继续增加延时功能

编写好程序后,单击“上传”,将程序上传到UNO3主控板上。(注意,在上传程序之前再次确认主控板型号和COM接口号,点击上传后切勿插拔数据线直至右下角出现“上传成功”)

数字输出是Arduino UNO3主控板对电子元件的控制方式之一。它向输出的电路传送数字型号-0和1两种信息。

程序流程图

你可以看见,LED模块正在重复执行亮1秒灭1秒的效果,如果没有其他干预,程序会一直重复执行下去

oled屏无法显示时,请用万能表量下屏的电源脚、IIC脚,看下是不是33v。电压、电流不足会导致屏幕无法显示。

在开发项目时,屏的电源脚是通过线性稳压器(LDO)去控制的,在程序初始化时,打开LDO,发现屏幕还是不显示。

最后发现是程序跑得太快,在屏还没上电就开始屏幕的初始化,所以导致屏无法显示。

解决方法,gpio使能LDO后,延时5毫秒左右,再去屏幕初始化。

当然可能其他的单片机不会出现这种问题,我用的wb32主频是96M的,速度快,所以会出现这种问题。

以上就是关于stm8s003单片机写OLED的代码内存不够怎么办全部的内容,包括:stm8s003单片机写OLED的代码内存不够怎么办、米思琪如何驱动oled显示屏、keil5烧录后,oled不显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9383611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存