1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自《STM32F7 开发指南(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子
![0e2dddc96be9bb0718a7f2286ebf6084.png](https://i-blog.csdnimg.cn/blog_migrate/51726a2cfdf9376d5d1f5e4665bcefad.jpeg)
第五十九章 T9 拼音输入法实验
上一章,我们在 ALIENTEK 阿波罗 STM32 开发板上实现了手写识别输入,但是该方法只
能输入数字或者字母,不能输入汉字。本章,我们将给大家介绍如何在ALIENTEK阿波罗 STM32
开发板上实现一个简单的 T9 中文拼音输入法。本章分为如下几个部:
59.1 拼音输入法简介
59.2 硬件设计
59.3 软件设计
59.4 下载验证
59.1 拼音输入法简介
在计算机上汉字的输入法有很多种,比如拼音输入法、五笔输入法、笔画输入法、区位输
入法等。其中,又以拼音输入法用的最多。拼音输入法又可以分为很多类,比如全拼输入、双
拼输入等。
而在手机上,用的最多的应该算是 T9 拼音输入法了,T9 输入法全名为智能输入法,字库
容量九千多字,支持十多种语言。T9 输入法是由美国特捷通讯(Tegic Communications)软件
公司开发的,该输入法解决了小型掌上设备的文字输入问题,已经成为全球手机文字输入的标
准之一。
一般,手机拼音输入键盘如图 59.1.1 所示:
![870f812ad2f13c522cb8af4cdcde1d0d.png](https://i-blog.csdnimg.cn/blog_migrate/0750971eb0c428b80dfd0b0ac79cef92.jpeg)
图 59.1.1 手机拼音输入键盘
在这个键盘上,我们对比下传统的输入法和 T9 输入法,输入“中国”两个字需要的按键
次数。传统的方法,先按 4 次 9,输入字母 z,再按 2 次 4,输入字母 h,再按 3 次 6,输入字
母 o,再按 2 次 6,输入字母 n,最后按 1 次 4,输入字母 g。这样,输入“中”字,要按键 12
次,接着同样的方法,输入“国”字,需要按 6 次,总共就是 18 次按键。
如果是 T9,我们输入“中”字,只需要输入:9、4、6、6、4,即可实现输入“中”字,
在选择中字之后,T9 会联想出一系列同中字组合的词,如:文、国、断、山等。这样输入“国”
字,我们直接选择即可,所以输入“国”字按键 0 次,这样 T9 总共只需要 5 次按键。
这就是 T9 智能输入法的优越之处。正因为 T9 输入法高效便捷的输入方式得到了众多手机
厂商的采用,以至于 T9 成为了使用频率最高知名度最大的手机输入法。
本章,我们实现的 T9 拼音输入法,没有真正的 T9 那么强大,我们这里仅实现输入部分,
不支持词组联想。
本章,我们主要通过一个和数字串对应的拼音索引表来实现 T9 拼音输入,我们先将汉语
拼音所有可能的组合全部列出来,如下所示:
const u8 PY_mb_space []={""};const u8 PY_mb_a []={"啊阿腌吖锕厑嗄錒呵腌"};const u8 PY_mb_ai []={"爱埃挨哎唉哀皑癌蔼矮艾碍隘捱嗳嗌嫒瑷暧砹锿霭"};const u8 PY_mb_an []={"安俺按暗岸案鞍氨谙胺埯揞犴庵桉铵鹌黯"};……此处省略 N 多组合const u8 PY_mb_zu []={"足租祖诅阻组卒族俎菹镞"};const u8 PY_mb_zuan []={"钻攥纂缵躜"};const u8 PY_mb_zui []={"最罪嘴醉蕞觜"};const u8 PY_mb_zun []={"尊遵樽鳟撙"};const u8 PY_mb_zuo []={"左佐做作坐座昨撮唑柞阼琢嘬怍胙祚砟酢"};
这里我们只列出了部分组合,我们将这些组合称之为码表,然后将这些码表和其对应的数
字串对应起来,组成一个拼音索引表,如下所示:
const py_index py_index3[]={
{"" ,"",(u8*)PY_mb_space},{"2",&#