《语音识别TWen-ASR-ONE开发笔记》第5章 TWen-ASR-ONE 串口使用

404 阅读2分钟

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:风扇已关闭

打开串口调试助手,可以看到相应字符输出。

在这里插入图片描述