读取数据并显示
概述
这一部分本来并不难,想直接做不用记录,但是早上还是做了快半个小时,还是写一下出现的一些问题吧。从sd卡中读取数据已经在上一篇文章中有提及,这里就不多赘述,主要是说一下SSD1306 OLED屏幕的一个函数,display.drawXbm()
开始操作
之前已经把OLED显示做好了,现在再把读出来的数据作为参数传进去就行了,所以先来了解一下这个函数的参数(并非来自官网)
drawXbm(34,14,width,height,testCode)
- 第一个参数和第二个参数分别对应起点的x和y坐标,参考系是默认是左上角开始,而我的0.96寸的OLED屏幕是128*64个像素点的,所以根据这些数据的计算就可以准确得出自己想要绘画的位置了。
- 第三个参数就是宽和高,起点,宽,高,这几个量合起来就可以确定绘画范围
- 最后是绘画的内容,我觉得应该是前四个参数合起来就可以确定元素个数,所以这个内容数组没有要求填写数组大小,我试了一下,用偏大的内存空间也是可以正常显示的
- 所以在使用的时候可以创建一个足够大的数组,每次使用之前用memset或者for循环清空数组(置为0),然后就把读到的数据放进去,要显示下一个图像就把这个清空读下一个即可。
遇到的问题
我把数据读出来,是十进制的数据,结果OLED屏幕显示乱码,我用这串十进制数直接写进PROGMEM,结果显示正常,然后再把我得到的height和width数据输出,结果width居然有一百多
原数据:
24
24
读取代码:
if(myFile.available())
{
char c1 = myFile.read();
char c2 = myFile.read();
char c3 = myFile

本文讲述了作者在使用SSD1306 OLED屏幕时遇到的显示问题,数据读取后显示乱码,通过发现换行符差异解决方法,包括修改文件格式和调整代码来适应不同系统换行符。
最低0.47元/天 解锁文章

200

被折叠的 条评论
为什么被折叠?



