20年毕业后,工作之余还是抽出了点时间来做一个自己一直想做的一个项目,那就是一个点阵屏。
衍生
我当时设想的是先显示一些简单的字体什么的但后面又觉得太low了,于是又加了个外部存储芯片,费了好大劲做好字库并将字库写进存储芯片里面,字库包括中英文以及特殊字符全给整上。但是随即又遇到新的问题,总不能我想让它显示其他什么汉字的时候每次都要重新下载程序吧。
在存储芯片里存储完字库以后仍然剩余大部分的空间,于是我将剩余的空间虚拟成U盘,然后在U盘里面创建一个txt文档;文档里面保存着我所需要的显示的中英文内容;这样我写芯片应用的时候只需要通过fatfs读取出txt内容后,根据内容翻译出对应字库中的gbk地址,根据地址读取出相应的点阵字库后通过LED显示即可。
同样的道理,stm32的flash空间也虚拟成U盘,这样我想更新程序就可以不必再依赖于下载器了,只要有根数据线连接usb即可。而且,我还可以提前将一些应用备份到外部存储芯片中去,这样我想换个程序运行的时候将提前备份好的bin文件复制过去或者让其自动复制过去即可。
后来发现灯太亮了,又加了调光。
设计思路
我的设想还是16X16的点阵屏可以满足绝大部分的汉字。如果做大一点的话比如32X32的话也不是不可以,就是led灯太多了,难焊。而且PCB板的大小也超过10X10CM,嘉立创要收费。。。。容我思考了一秒钟后16X16的大小足以显示汉字,而且还可以用便宜点的芯片比如使stm32f103c8t6这样的。
(当时我用这块芯片的时候它价格还在疯涨,最后还是淘宝上搞的几块钱的,毕竟刚出来兜里比我脸还干净。)
在点阵屏的显示这块的思路主要就是