5.1 TWen-ASR-ONE 串口简介
关于串口我这里就不再赘述了,我相信搞过嵌入式的朋友经常会用到。
笔者这里简单介绍下TWen-ASR-ONE 串口。
TWen-ASR-ONE 开发板两路串口:串口0和串口1。串口0引脚是固定在P1_7、P2_0,而串口1可以设置在P0_5、P0_6;P2_1、P2_2;P3_0、P3_1。如下图所示:
5.2 TWen-ASR-ONE串口打印实例
TWen-ASR-ONE使用的串口0作为调试下载口,笔者这里还是使用串口0打印输出。 串口有以下设置块。
串口通信主要是串口设置,接收数据和发送数据,还是比较简单的。
下面直接给出一个实例,在该实例中,根据不同的命令,串口输出相应字符串。
图形代码如下:
字符代码如下:
#include "asr.h"
#include "setup.h"
#include "myLib/asr_event.h"
uint32_t snid;
//{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
//{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
//{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
void ASR_CODE()
{
//{ID:29,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
if(snid == 29){
Serial.println("1");
}
//{ID:30,keyword:"命令词",ASR:"打开风扇",ASRTO:"风扇已打开"}
if(snid == 30){
Serial.println("2");
}
//{ID:31,keyword:"命令词",ASR:"关闭风扇",ASRTO:"风扇已关闭"}
if(snid == 31){
Serial.println("3");
}
//{ID:32,keyword:"命令词",ASR:"最大风速",ASRTO:"已执行"}
if(snid == 32){
Serial.println("4");
}
//{ID:33,keyword:"命令词",ASR:"中等风速",ASRTO:"已执行"}
if(snid == 33){
Serial.println("5");
}
//{ID:34,keyword:"命令词",ASR:"最小风速",ASRTO:"已执行"}
if(snid == 34){
Serial.println("6");
}
//{ID:35,keyword:"命令词",ASR:"风扇摇头",ASRTO:"已执行"}
if(snid == 35){
Serial.println("7");
}
//{ID:36,keyword:"命令词",ASR:"风扇停止",ASRTO:"已执行"}
if(snid == 36){
Serial.println("8");
}
}
void setup()
{
//作为语音识别传感器,通过串口输出识别ID,供其他主控判断
//Serial为USB下载端口,Serial1为P30(RX)、P31(TX)
//{speak:小蝶-清新女声,vol:10,speed:10,platform:haohaodada}
//{playid:10001,voice:欢迎使用智能管家,用智能管家唤醒我。}
//{playid:10002,voice:我退下了,用智能管家唤醒我}
Serial.begin(9600);
Serial.setTimeout(10);
}
编译下载。
最后的效果如下:
我:智能管家 TWen-ASR-ONE: 我在 我:打开风扇 TWen-ASR-ONE:风扇已打开 我:关闭风扇 TWen-ASR-ONE:风扇已关闭
打开串口调试助手,可以看到相应字符输出。