TWEN-ASR ONE 语音识别系列教程--- 软件定时器和串口使用
Posted 初五霸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TWEN-ASR ONE 语音识别系列教程--- 软件定时器和串口使用相关的知识,希望对你有一定的参考价值。
TWEN-ASR ONE 语音识别系列教程(3)— 软件定时器和串口使用
提示:作者使用 TWEN-ASR ONE V1.0开发板进行开发学习。
文章目录
前言
在程序设计里,往往离不开与时间有关的程序编写,如前面文章《TWEN-ASR ONE 语音识别系列教程(2)— GPIO、ADC、PWM的使用》中的闪烁灯。闪烁的时间用到延时函数块。所以本文探讨软件定时器的使用和应用场景。上文中也使用到串口调试,串口是很常用的接口,如调试、连接串口模块等等。本文主要内容有:
- 软件定时器的使用和测试;
- 串口的使用和测试。
一、软件定时器的使用与测试
1.1软件定时器使用说明
软件定时器与硬件定时器使用基本相同。在天问Block软件中,关于软件定时器主要有三个程序块,分别是软件定时器块、启动软件定时器块、关闭软件定时器块。下面简单介绍这三个程序块的使用。
(1)软件定时器块。 主要设置间隔时间和运行模式,定时时间到会执行块内的程序。
其中,软件定时器默认有1-8。可以单次运行或重复运行软件定时器。间隔时间以ms为单位。软件定时器可以定义很多个,也可以按字符定义。如下所示。
(2)启动软件定时器块。 如果想要执行软件定时器块的程序,需要启动软件定时器。
(3)停止软件定时器块。 如果需要关闭软件定时器,则使用停止软件定时器。
这里需要注意的是,软件定时器的名称要一致。
1.2软件定时器代码编写
实现程序主要是当有语音命令“开启闪烁灯”开启板载的RGB蓝灯会闪烁,当有语音命令“关闭闪烁灯”停止闪烁,并关闭板载的RGB蓝灯。
- 图形代码
1.3软件定时器代码分析
软件定时器中,程序实现读P1_4的值,然后取反输出。即输出与当前电平相反的电平,从而达到闪烁的目的。关闭软件定时器时,P1_4输出低电平关闭蓝灯。不管当前蓝灯是亮或灭状态,都关闭蓝灯。
1.4软件定时器运行测试
我:智能管家
ASR:我在
我:开启闪烁灯
ASR:好的,马上开启闪烁灯
我:关闭闪烁灯
ASR:好的,马上关闭闪烁灯
1.5软件定时器小结
软件定时器,时间到可以执行程序块里面的程序,可以单次执行,也可以重复执行。根据实际应用场景选择。
二、串口的使用与测试
2.1串口使用说明
板载有串口0、串口1。串口引脚是固定在P17、P20,而串口1可以设置在P0_5、P0_6;P2_1、P2_2;P3_0、P3_1。如下图所示:
在天问Block软件中,串口初始化可选择串口0或串口1,波特率可选择为9600、57600、115200。一般使用会在初始化块中,使用串口设置块,如下图所示。
串口通信主要是接收数据和发送数据。串口发送数据有比较多的程序块,如下图所示。有原始输出、打印、打印(自动换行)、打印16进制数(自动换行)。
串口接收数据相关程序块如下图所示。有读取字符串、数据可读吗、读取字符串直到设定字符、读取原始数据。
串口接收数据,如果发送数据较多,接收不过来,可以使用清空缓存数据,保证收到最新数据。
2.2串口代码编写
实现程序主要是串口发送0x00关闭红灯,发送非0x00数据打开红灯。
- 图形代码
2.3串口代码分析
串口0初始化波特率为9600。在线程中判断是否有数据可读,有数据读取判断是否为0x00。执行相应的操作,程序具体注释如下所示。
2.4串口运行测试
ASR ONE 接收到0x00,会关闭红灯,并且返回Red LED light off;接收到不是0x00,会打开红灯,并且返回Red LED light on。具体测试如下所示:
2.5串口小结
串口使用还是很方便的,选择使用串口0或串口1,设置波特率就可以完成初始化工作。而发送和接收数据,可以使用相应的数据块。程序调试时,可以打印串口信息,做外围扩展常常会用到原始数据的发送和接收,在天问Block里,都有相应的程序块。开发起来效率高、使用方便。
三、总结
串口在实际中使用非常多,可以用于调试程序、可以扩展外围设备等等。而软件定时器用在一些定时场合。本文简单介绍了软件定时器和串口的使用,在天问Block里面有对应的程序块,使用起来非常方便。
以上是关于TWEN-ASR ONE 语音识别系列教程--- 软件定时器和串口使用的主要内容,如果未能解决你的问题,请参考以下文章
TWEN-ASR ONE 语音识别系列教程--- 软件定时器和串口使用
TWEN-ASR ONE 语音识别系列教程--- GPIOADCPWM的使用
TWEN-ASR ONE 语音识别系列教程--- GPIOADCPWM的使用
TWEN-ASR ONE 语音识别系列教程--- GPIOADCPWM的使用