stm32,在电脑上输入汉字,通过can口接受并在OLED上显示。。帮我分析下该怎么做,主要是汉字字库不会使用
2个回答
展开全部
电脑上输入的中文编码一般使用GB2312或GBK编码,发送时发汉字的编码至单片机就可以,汉字库可以存储在内部flash或者外部flash,如外部SPI的flash比较便宜,字库存储时直接从需要存储的首地址连续存储即可,该地址可以记为flash的偏移地址,汉字字库的数据存放地址通过汉字的编码算出,具体算法可参考http://wenku.baidu.com/view/a4b24941336c1eb91a375dc0.html,算出来的地址为字在字库中的偏移地址。
则最后要访问的地址就是:flash偏移地址+字库中偏移地址
读取的数据长度与点阵大小有关,与16*16点阵字库的数据为32字节。
将读取出来的数据直接按画点的方法画至OLED上即可,但需要注意字库的存储方向和屏幕的显示方向。
则最后要访问的地址就是:flash偏移地址+字库中偏移地址
读取的数据长度与点阵大小有关,与16*16点阵字库的数据为32字节。
将读取出来的数据直接按画点的方法画至OLED上即可,但需要注意字库的存储方向和屏幕的显示方向。
追问
字库文件“16*16.FON”文件怎么存储在外部flash里面?
追答
比较笨一点的方式是将字库文件转换成数组和程序代码一起烧进stm32的flash,然后再在程序里将数组里的数据写至外部的spi flash。
比较灵活一点的就是通过串口发送至stm32后,stm32再将数据写至SPI FLASH,这个串口的协议可以用xmodem、ymodem等等,具体可以参考stm32的串口IAP例程,该例程使用的是Ymodem协议实现IAP,把底层的flash驱动换为spi的flash驱动就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询