在单片机控制LED屏幕的工程中,由于单片机资源有限,无法同时存入大量汉字的字模,故而需要一个PC节点将需要显示的内容临时存入Flash中,显示内容再读取响应扇区通过LED控制函数送上线
在此过程中,PC节点需要可以提取出字模,根据要求还需要封装成大小有限的帧,限定了数据格式
这部分代码参考了CSDN某博文,大佬用C#的LINQ写的一些方法着实精简好看,修改过程水平有限越写越繁琐,但是自认为更易读(我的无数层For =w=)
这部分代码是依附于一些winfrom控件的,包括
一个文本框textbox(tb_uartRecv.Text)(这个完全可以用一个新的String替代效果)
两个updown调整偏移(UD_X,UD_Y)
一个文本框提供字体格式(tb_originalText.Font)
哦对,我还顺手解决了一些英文字母数字其实只需要占8*16,GDI绘制的时候也是只绘制这么大的,另一半是空的
/// <summary>
/// 将文字按照选定的格式,每个字单独绘制出字模
/// 取模方式:阴码,行列式
/// </summary>
/// <param name="text">需要转化的文字内容</param>
/// <returns>有2倍文本长度个元素的ArrayList</returns>
private List<byte[]> getMatrix(String text)
{