前一段时间在83L
@jpdd521家买的,首先改供电为5V,因为12V比较不方便,改完5V电流大概0.55A,没办法,vfd是耗电大户。
论坛有不少相关帖子,一搜索一大堆,大部分都是使用51内核的单片机驱动。稍作整理,用的是pos的GD32f单片机,其实用stm32f103c8t6也是可以的,使用io模拟的,硬件spi没成功,全屏刷新9ms,意思是可以达到110帧,速度够快吧。
只找到了全屏刷新的办法,据说有局部刷新的办法,刷新速度比较快,也就无所谓了。
思路是把要显示的的数据写入一个255x8的数组,然后进行全屏刷新,这大概占用2k的内存,对于stm32来说这点内存不算什么,工作流程如下:
上电--->单片机使能屏幕(点灯丝)--->进行初始化操作--->数据写入数组(缓存)--->将缓存数据写入屏幕
这个程序集成了全体5x8,8x16的ASCLL,16x32,32x64的 0~9数字,均有实例函数,还可以自定义32x32的图形或者汉字,有兴趣的可以自行添加字库,坛友制作字库帖子:
http://bbs.mydigit.cn/read.php?tid=2352395 反面图片,白色的是704胶,红黑为供电,耳机线是数据
细节图,红线附近的ams1117是提供3.3V的电压
改供电电压的部分
闪光灯亮了,不清楚
亮度偏暗,不知道是不是改供电影响的
驱动,pos的单片机
显示了32x32的自定义字符,8x16的ascll和5x8的ascll。
使用“正点原子”公司编写的一些文件,在此表示感谢。
这里首先进行io口初始化,因为stm32的io口不像51拿过来就能用,如何设置不再累赘,这里有
详细说明 :
http://bbs.mydigit.cn/read.php?tid=2339786io口初始化完成后进行屏幕的初始化,数据来源是大神
@分析纯_金 从车机反扒出来的,
有兴趣的可以看下:
http://bbs.mydigit.cn/read.php?tid=1311983 细说一下细说这里的几个被调用函数,634,635,636行是将test数组的数据写入到缓存的0页,0行,0页,32行,0页,64行,
注意一下这里的缓存是在单片机内部的2K内存(RAV4_VFD.C的第11行定义),并不是屏幕内部的存储,639,640两行分别是写8x16和5x8的ascll到对应地址,649~661才是将数据发送到屏幕,执行完对应的上面那张屏幕的显示状态;
这是数据发送函数,低位先发,理论来说可以用硬件spi代替,我没有试验成功,示波器看也有信号,不知道为什么。
这里是几个关键的函数,可以直接使用,目前没发现什么BUG
自己取模的时候选择纵向取模就可以了,有需要的下载附件,mdk5编译。