本帖最后由 QianFan 于 2015-3-5 21:04 编辑
今天使用STM32F429I Discovery编写一个简单的图形函数,主要是基于FrameBuffer的绘图。在绘制圆,直线,矩形的时候还算是正常,但是当在屏幕上打印字符串的时候出现了bug。由于使用了ST官方历程的字体库,懒得自己取模了。ST的源文件是:fonts.c。这个大家可以再官方的固件库中找到。这里就不上传了。
在编写程序实际测试的时候,发现不同的字体显示效果不一样,有的是正常的,有的是左右颠倒的。这个很自然的想到是MSB/LSB FIRST的问题,也就是取模时高低位哪一个在前的问题。可是不管是改成MSB FIRST 还是LSB FIRST,总会有几个字库的文字是颠倒的,并且字与字之间的间隔很大。本着瞎折腾的原则,我用excel将不同字库的a字母画了一遍(之所以选用a是因为a左右颠倒之后比较明显)。下面是截图:
先看0808的:取模的时候是高位在前,这个a还算是比较均衡的。左右还算是对称。
a88.png (11.56 KB, 下载次数: 10)
0808
2015-3-5 20:51 上传
再来看0812的:和0808的一样,也是MSBFIRST,不过这个字严重比例失调。这是什么情况。。。已无力吐槽。这字库是实习生做的吧。。。
a812.png (17.47 KB, 下载次数: 9)
0812
2015-3-5 20:51 上传
下一个是1212的:这个竟然不同于上两个,竟然是LSB FIRST,这使用不同的字库竟然还要在开始的时候判断是LSB FIRST 还是MSB FIRST吗???上下还说的过去,但是在看看这左右。。。。
a1212.png (20.51 KB, 下载次数: 7)
1212
2015-3-5 20:51 上传
最后一个是还算比较正常的1624 。。。只不过依然霸气的使用LSB FIRST,结果我按照MSB FIRST画出来是这个样子::总的来说上下左右还算比较对称。
a1624.png (37.96 KB, 下载次数: 5)
1624
2015-3-5 20:51 上传
四种字体中竟然两种LSB FIRST,两种MSB FIRST。。想想也是醉了,更不用吐槽这个对称了。。。
难道老外喜欢的是不对称的美吗
上传一个这四个字体的pdf(因为社区不能上传excel,所以转成pdf之后上传)。