|
|
STM32F103驱动RGB点阵屏 这是本人第一次在数码之家发帖,1是展示作品,2就是骗一些m币了    正文: 此次项目用了一年时间完成。此次这个全彩点阵项目中也遇到不少问题,通过解决问题,学习到很多相关知识。说起来最早学习stm32实在2015年过年时间,为了学习DIY了块stm32f103最小系统(洞洞板搭的)后面上图。后来买来3块32*16点阵屏是在15年6月份。后开始了项目制作,整个制作过程中我简单说下 ·经过一下几个阶段: 1.最早能驱动行选显示单色图片。 最早刚掏来时候嘿嘿 三张 16 * 32 RGB 点阵显示屏 单张卡是P6的室内屏,已经没有了外壳,而且上面有些灯已经掉了,并且重的焊盘都没有了,毕竟便宜,只能买点这种3528灯珠自己修修了 最早测试,什么功能没有,只是写个个简单的刷新程序,程序也找不到了。 2.更新驱动显示中文,字体放入SPI Flash 中,但是问题是每次更新都要程序中重新汉字取模。 内部连接,以及驱动板,此处无广告无广告无广告 后面外壳,嘿嘿纯手工打造 厚度3.5cm 底部接口,有一个3.5mm的DC 口,接5V电源,在点亮全部1024个点的情况下,功率能达到10w 也就是说至少要用5V2A的电源给供电。还是比较耗电的。至于亮度嘛,虽然和同样的10W灯泡比不了但是还是亮瞎狗眼的。 3.更新显示时间,加入DHT11 支持显示湿度、温度、以及中文显示 (到此完成日期是2016年8月底)到此还只是当普通点阵屏玩,在此并没完成灰度驱动。 DHT11传感器 显示时间,到此第一版功能就这些 其中显示中文是先取要显示的汉字的字模,然后用一个程序烧写到spi flash 中去,最后再烧显示程序,超级麻烦 ----------------------------------------------------------------------------------------------------------------- 后来就因为上学,没时间继续折腾,就搁置了一学期。 重启项目就到2016年4月初了,那时候也是机缘巧合,从GitHub上看到了个项目,项目是F4驱动RGB点阵显示随机函数的例子。就此就重启项目。但是因为之前一版的程序写的太烂了,也不好拿来改,所以一咬牙重写了整个项目,但好在底层函数能直接用老版的,所以此次重写用来2个月完成。期间参考了国内外无数大大的文章。 左边一块是用树莓派驱动的,显示效果比我这个要好,对比度也比我这块高,图中右边的是本次的作品,显示时明显发白。这个以后再考虑更改了。在此,我用的是8场模式扫描的,都已经到F1的极限了(也可能是因为自己水平有限)在标准72M时钟主频下,刷新率达到50多帧。近看还可以,远看就会感觉到闪烁,后来给主频干到120M了,刷新率能达到90多帧了。商业点阵屏(点阵数多的或者是全彩屏)全是采用FPGA驱动的方案。 4.2016年4月初重写程序,移植库 调试等忙忙活活2个月。 程序包含头文件以及简单一个说明 5.2016年6月初整个项目差不多完结。在此版本主要功能: (1)支持256级灰度 。 (2)上层支持多种基本画图函数如画点、画线、画圆、等。 代码片段,这是画图功能和ASCII 显示的功能 支持画点 画线 画空心圆 画实心圆 画矩形(填充矩形) 等功能 字体显示时内置4中字体 font 3*4 font5*7 font6*10 font8*13 四中字体,还可以自由添加字体 - setFont(font5x7);
- drawString(4,0,Color888(234,23,75),"STM32");
- drawString(4,7,0x00ffffff," RGB ");
- setFont(font3x5);
- drawString(4,14,0x00FF4040,"Matrix");
- drawString(4,20,0x00FF4040," test ");
- delay(2000);
- ClearBuff(0,1023);
- fillScreen(Color888(17, 17, 17));
- delay(500);
- drawRect(0, 0, 32, 32, Color888(255, 255, 0));
- delay(500);
- drawLine(0, 0, 31, 31, Color888(255, 0, 0));
- drawLine(31, 0, 0, 31, Color888(255, 0, 0));
- delay(500);
- drawCircle(7, 7, 7, Color888(0, 0, 255));
- delay(500);
- fillCircle(23, 7, 7, Color888(255, 0, 255));
- delay(500);
- fillScreen(Color888(0, 0, 0));
- ClearBuff(0,1023);
同时支持左移ASCII显示 (3)内置2Mbyte SPI Flash 内置GBK字库。直接显示中文爽爽哒。 (4)支持HSV颜色空间。 一楼继续
|