geek1024 发表于 2015-9-15 19:14:23

STM32f103实战之驱动32*32 RGB点阵

前段时间活动,有幸得到(骗到)一块stm32板子,玩了几天资料带的例子,也没啥意思,后来就寻思还是做点东西出来。我也是个三天打鱼,两天晒网的人,三分钟热度。正巧手里有两块RGB点阵屏,寻思用啥驱动才好。。。后面还有好多故事,不说了。正文:正式开始大概是7月份,其实在刚到手的时候,就写了个最简单的驱动,能显示四个汉字,后来一直没玩,直到放假,放假时间长,没啥事干就寻思做点啥玩玩。中间制作,老是忘记拍(懒),有多少就放多少图,努力介绍清楚。http://uphotos.eepw.com.cn/1414062183/pics/1ad3a7364df0f79e09838de42877ebae.jpg
http://uphotos.eepw.com.cn/1414062183/pics/58862a6a3fcd204cb6e6820f1fe37c83.jpg这大概是7月份,算得上是第一版。之后就断了没继续弄,大概到8月份才重启项目。
之后就是改驱动,优化,增加功能,和一边需要什么功能,就学什么功能,从GPIO 到 Systick 、 后来需要按键,就去学外部中断,学完外部中断,就面临着中断优先级问题,这又学了几天NVIC 知识。http://uphotos.eepw.com.cn/1414062183/pics/2c7036c0e18e9400defb910dc93b6f7a.jpg这看了日期,是8月18日拍摄的,时间过得真是快。。。增加了温度和湿度显示,用的是常见的dht11正好有温度接口,估计是给ds18b20准备的,单总线接口,不过正好都是单总线接口。http://uphotos.eepw.com.cn/1414062183/pics/4edcb5d2eb5c86a8f52c1a3e1ebd6852.png
后来8月21 脑袋短路,开始做外壳,量尺寸,锯木头板。又是一天时间。http://uphotos.eepw.com.cn/1414062183/pics/061cd703c134ba238402f42d12ff5592.jpghttp://uphotos.eepw.com.cn/1414062183/pics/954291b7f6024714bdf31c0987c28b20.jpghttp://uphotos.eepw.com.cn/1414062183/pics/27ed245b771fa406c4f72c4f43641410.jpg
图片右下角蓝色是dht11 电池右边的是w25x16 2Mbyte flash 模块。显示的数据就放在它里面,每次需要改变显示内容是,从里面读取数据。
http://uphotos.eepw.com.cn/1414062183/pics/c7d1e01d54692a251eaa88286c61b4aa.jpg
http://uphotos.eepw.com.cn/1414062183/pics/0ec3dd5cf4dc90bce732726a68d2970a.jpg
接口内部特写。 引出了电源口,方便电池供电,引出了uart1,显示信息,这里说下,板子上UART1直接接到usb转串口点点taptap安卓上,没有引到GPIO上,好在强大的stm32,能映射端口,这不禁想起了STC单片机也能映射端口,越来越讨厌stc的广告。还有当然要引出SWD用于烧写程序,我可不想每次都打开上盖去烧写程序,SWD接口只需要IO、SCK、GND三条线,强大!!!

http://uphotos.eepw.com.cn/1414062183/pics/d003c7423a12aa37672ef6e7620a81c9.jpg这是开学前一天拍的,说好的开学前发帖。。。拖到了今天。
================================================================================至于显示,很简单,本人菜鸟,没能实现全彩显示,最多只能实现显示7种颜色。翻到YouTube上国外大神发的讲解:链接在此 。英语差的不行,看不懂,但是驱动是通过FPGA去调pwm吧,驱动rgb点阵屏不像普通单色、双色点阵屏,通过595+138就能实现,RGB驱动是要通过专用恒流驱动点点taptap安卓去驱动,常用的恒流驱动点点taptap安卓分两种,一种是像595一样,功能只是信号输出。还有一种是能输出16位的PWM信号的专用驱动点点taptap安卓。现在全彩点阵,基本上都是用后者驱动。能轻松实现65536*3种颜色变化。再通过强大的FPGA去写入数据。只是单独显示文字的话,简单,比如显示红色(32*32)点阵,首先定义一个最少128字节的缓存。把要显示的数据从flash 调到 缓存中去,然后通过算法,将数据送出去,循环显示就行。看似简单,要实现复杂点效果还是挺难的。就这样吧,遗忘的楼下补吧。想到就先这么多。通过这个项目,确实比单独玩单一的例子强太多了。菜鸟发帖,不详细之处见谅(发帖骗板)。
版权声明:本文为作者原创文章,未经作者允许不得转载。

xdatd 发表于 2020-8-29 19:18:55

挺好的

硕果累累 发表于 2017-5-10 14:34:25

你好,我也用的神舟的板子,可否看看你的源码啊

奋斗哥 发表于 2015-9-17 08:56:57

厉害!

lyzd 发表于 2015-9-16 08:51:49

厉害啊,加油

党国特派员 发表于 2015-9-15 19:53:58

确实挺大的

#define 发表于 2015-9-15 19:31:01

真大                  
页: [1]
查看完整版本: STM32f103实战之驱动32*32 RGB点阵

Baidu
map