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