IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 第三篇 树莓派的串口通信和语音识别模块 -> 正文阅读

[嵌入式]第三篇 树莓派的串口通信和语音识别模块

目录

一、串口(UART)

二、?wiringPi提供的串口API

三、语音识别模块

1、阅读模块代码?

①代码阅读工具:Souces Insight4.0安装、激活、汉化等

②语音识别(口令模式)源码框架(按main.c的顺序阅读)

2、修改代码


一、串口(UART)

全双工: 通信允许数据在两个方向上同时地双向传输。

半双工:数据传输指数据可以在两个方向上传输,但不同时。

(串口通信属于全双工通信)

  • 树莓派的串口

????????①主串口(/dev/serial0):可以通过引脚实现通信

????????②辅助串口(/dev/serial1):不能使用GPIO通信(默认分配给蓝牙)

????????????????(默认mini是禁用状态,无论指定为主uart还是辅助uart)

树莓派3/4B的外设包括两个串口 :

????????①串口设备(/dev/ttyAMA0):由硬件实现,有单独的波特率时钟源,性能高且可靠。

????????②mini串口设备(/dev/ttyS0):性能较低,功能简单

?????????????????????????????????????????????????????????(官网提供图片)

二、?wiringPi提供的串口API

函数原型参数或功能解释返回值
int serialOpen (char *device ,int baud)

device:串口设备文件

? (/dev/ttyAMA0)

baud:波特率

成功:返回所打开的文件描述符fd;

失败:返回-1

void serialClose (int fd)fd:文件描述符无返回值
void?serialPutchar (int fd, unsigned char c)发送一个字符到串口无返回值
void?serialPuts (int fd, char *s)

发送字符串到串口

(字符串s要以' \0 '结束)

无返回值

int??serialDataAvail (int fd)获取串口中可读数据的字节数

成功:串口中可以读取的字节数;

失败:返回-1

int serialGetchar (int fd)

读取串口的数据

(读取之前判断是否有数据)

返回值:实际读取到的字节数

另外,Linux下的标准I/O函数也可使用(需包含头文件 inlcude<unistd.h>)

size_t write (int fd,const void * buf,size_t count)

size_t read(int fd,void * buf ,size_t count)


三、语音识别模块

1、阅读模块代码?

①代码阅读工具:Souces Insight4.0安装、激活、汉化

提取码:48a3(含安装、激活、汉化教程)

语音识别(口令模式)源码框架(按main.c的顺序阅读)

a.基本的初始化

Led_test( ) ;? //单片机指示灯闪烁3次

MCU_init( );? //初始化单片机I/O口特殊功能寄存器p0~p4,置为高电平;

??????????? ?????????? //设置LD_MOOE为低电平,并行模式读写;

?????????????????????? //打开中断控制寄存器。

LD_Reset( );//复位LD模块

UartIni(); //串口初始化

?接着赋值表示ASR状态的变量nAsrStatus=LD_ASR_NONE;

此时没有在做ASR识别。?

b.实现主要功能的代码

switch(nAsrStatue)执行各分支语句:

①case LD_ASR_RUNING:

????case LD_ASR_ERROR:?????

????????break;

(正在识别和识别错误时,不作处理)

②case LD_ASR_NONE:(表示ASR空闲中)

执行:将ASR状态赋值为running;再启动识别,调用runASR( )

runASR( )的主要功能:初始化ASR,添加关键词,启动ASR运算,内部大致包括:LD_AsrStart( )、LD_AsrAddFixed( )、LD_AsrRun( )、LD_GetResult( )。(初始化、添加关键词、启动运行、获取识别结果。LDChip.c中),ASR启动成功后,asrflag=1,等待LD3320的中断信号

③case LD_ASR_FOUNDOK:(表示识别完成)

执行:调用LD_GetResult( )获取识别结果,对获取的结果根据用户需要实现对应功能User_handle( ),处理完后再将ASR的状态置为LD_ASR_NONE(空闲状态)

④case LD_ASR_FOUNDZERO:(表示没有识别出结果)

执行:将ASR的状态置为LD_ASR_NONE

2、修改代码

阅读完模块代码,了解其基本架构后,即可根据需求进行修改。

示例:通过语音识别开、关灯

(由于我的树莓派凉了,此处略)

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 02:08:40  更:2022-01-14 02:10:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:38:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码