赞
踩
1)实验平台:正点原子stm32f103战舰开发板V4
2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420
3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html##
本章将介绍正点原子提供的手写识别库的使用,通过使用手写识别库可以实现一些简单的数字字母手写识别的应用。通过本章的学习,读者将学习到正点原子手写识别库的使用。
本章分为如下几个小节:
58.1 硬件设计
58.2 程序设计
58.3 下载验证
58.1 硬件设计
58.1.1 例程功能
图58.2.1.1 正点原子手写识别库文件
手写识别库中提供了手写识别初始化、识别和停止等函数,使用非常方便。
在进行手写识别前,需要使用手写识别初始化函数对其进行初始化,手写识别初始化的使用示例,如下所示:
#include "apm32f4xx.h" #include "./ATKNCR/atk_ncr.h" void example_fun(void) { /* 初始化手写识别 */ alientek_ncr_init(); } 手写识别初始化后,便可开始进行手写识别,手写识别函数的使用示例,如下所示: #include "apm32f4xx.h" #include "./ATKNCR/atk_ncr.h" void example_fun(void) { /* 定义点阵数据缓存 */ atk_ncr_point input_buf[200]; int input_cnt; char output_buf[2]; /* 初始化手写识别 */ alientek_ncr_init(); /* 从触摸屏或其他方式获取输入的点阵数据 */ input_cnt = get_data(input_buf); /* 进行手写识别 */ alientek_ncr(input_buf, cnt, 1, 1, output_buf); /* 处理识别结果 */ /* printf("Detect result: %s\r\n", output_buf); */ }
在进行手写识别后,若不再需要进行手写识别,可以调用结束手写识别函数,结束手写识别,该函数的使用示例,如下所示:
#include "apm32f4xx.h" #include "./ATKNCR/atk_ncr.h" void example_fun(void) { /* 定义点阵数据缓存 */ atk_ncr_point input_buf[200]; int input_cnt; char output_buf[2]; /* 初始化手写识别 */ alientek_ncr_init(); /* 从触摸屏或其他方式获取输入的点阵数据 */ input_cnt = get_data(input_buf); /* 进行手写识别 */ alientek_ncr(input_buf, cnt, 1, 1, output_buf); /* 处理识别结果 */ /* printf("Detect result: %s\r\n", output_buf); */ /* 停止手写识别 */ alientek_ncr_stop(); }
58.2.2 实验应用代码
本章实验的应用代码,如下所示:
int main(void) { /* 仅保留关键代码,其余代码省略 */ /* 初始化手写识别 */ alientek_ncr_init(); RESTART: while (1) { key = key_scan(0); switch (key) { /* 切换识别模式 */ case KEY0_PRES: { mode++; if (mode > 4) { mode = 1; } break; } /* 进行触摸校准 */ case WKUP_PRES: { if ((tp_dev.touchtype & 0x80) == 0) { tp_adjust(); goto RESTART; } break; } } tp_dev.scan(0); /* 有触摸按下,记录触摸点阵数据 */ if (tp_dev.sta & TP_PRES_DOWN) { ncr_input_buf[pcnt].x = tp_dev.x[0]; ncr_input_buf[pcnt].y = tp_dev.y[0]; } /* 触摸松开,进行手写识别 */ else { alientek_ncr(ncr_input_buf, pcnt, 6, mode, sbuf); printf("识别结果:%s\r\n", sbuf); } } }
由于本实验的应用代码过于冗长,因此上面代码仅保留了部分关键代码,完整代码请读者自行查看本实验的配套实验例程。从上面的代码中可以看出,本实验实现的应用中,通过触摸屏获取点阵数据,将点阵数据传入手写识别函数后,获取手写识别结果,然后将手写识别结果通过串口等方式输出,并且可通过KEY0按键修改手写识别的模式,也可通过KEY_UP按键随时进行电阻屏的触摸校准。
58.3 下载验证
在完成编译和烧录操作后,可以看到LCD上显示了本实验的相关实验信息,此时便可以在LCD上提示的“手写区”进行手写操作,完后手写操作后,可以看到LCD上提示了手写识别的结果,此时也可以按下KEY0按键修改手写识别的模式,也可以按下KEY_UP按键进行电阻屏的触摸校准。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。