第三篇 树莓派的串口通信和语音识别模块

2023-05-16

目录

一、串口(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):性能较低,功能简单watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUZfSU5FVDY=,size_20,color_FFFFFF,t_70,g_se,x_16

                                                         (官网提供图片)

二、 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)


三、语音识别模块

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUZfSU5FVDY=,size_20,color_FFFFFF,t_70,g_se,x_16

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识别。 

d65a702aa0ac43028b5b55528a1d66cb.png

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、修改代码

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

示例:语音识别开、关灯

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第三篇 树莓派的串口通信和语音识别模块 的相关文章

  • Debian搭建Squid服务

    实验拓扑 实验要求 Server01 IP地址 172 16 100 201 25 网关 172 16 100 254 Server02 IP地址 192 168 10 3 28 网关 192 168 10 2 Rserver IP地址 1
  • Debian搭建SSH服务

    SSH 安装SSH 仅允许client客户端进行ssh访问 xff0c 其余所有主机的请求都应该拒绝 xff1b 配置client只能在Chinaskill20用户环境下可以免秘钥登录 xff0c 端口号为2222 xff0c 并且拥有ro
  • Debian系统做磁盘阵列RAID5

    RAID5 在虚拟机上添加 4 个 1G 的硬盘 创建 raid5 其中一个作为热备盘 设备名为md0 将 md0 设置为 LVM 设备为 dev vg01 lv01 格式化为 ext4 文件系统 开机自动挂载到 data 目录 第一步 添
  • 利用冒泡法对10个数字进行排序

    将10个数由小到大进行排序 用冒泡法 第一趟比较 xff0c 如果是6个元素 xff0c 要进行n 1 xff0c 也就是6 1等于5次两两比较 第二趟比较中 xff0c 要进行n j xff08 j是趟数 xff09 两两比较 xff0c
  • Cloudreve添加腾讯云对象存储策略教程

    Cloudreve安装好后就可以添加存储策略了 xff0c 设置文件存储的位置 xff0c 我将文件存储在腾讯云对象存储 xff0c 使用内容分发进行下载加速和保护源站 对象存储和内容分发是收费的 xff0c 需要购买存储容量包 内容分发流
  • 汇编语言指令大全

    一 数据传输指令 它们在存贮器和寄存器 寄存器和输入输出端口之间传送数据 1 通用数据传送指令 MOV 传送字或字节 MOVSX 先符号扩展 再传送 MOVZX 先零扩展 再传送 PUSH 把字压入堆栈 POP 把字弹出堆栈 PUSHA 把
  • Access-Control-Allow-Origin跨域解决及详细介绍

    首先 xff0c 跨域不是问题 是一种安全机制 这是你在开发时 上线前就必须提前考虑到的安全问题并且采取合适的手段去避免这个问题带来的程序错误 不过通常情况下 xff0c 前端开发的小伙伴们都非常坚信后端小伙伴的接口一定已经处理好了跨域这个
  • CCF-CSP历年真题大全附题解(202303已更)

    CCF CSP真题拿来练手 xff0c 持续更新 xff0c CCF CSP真题拿来练手 xff0c 如果对自己没有拿高分的期望的话 xff0c 可以就琢磨着写一二三题就好 xff0c 三题和四题可以稍微瞧一瞧 xff0c 可以就拿最基础的
  • Notepad ++ 安装与配置

    目录 Notepad 43 43 获取与安装 Notepad 43 43 是什么 获取 Notepad 43 43 安装包 安装 Notepad 43 43 可以很方便的转换编码 配置 Notepad 43 43 首选项 常用 编辑 暗黑模
  • 在Docker中安装并修改MySQL中的 my.cnf 配置文件

    前言 前期经过MySQL主从复制之后 xff0c 发现数据库的读写非常慢 xff0c 而且经常发生MySQL连接数过小 xff0c 导致整个数据库崩溃的情况 通过修改MySQL中的 my cnf 配置文件参数 xff0c 以达到MySQL关
  • Armbian 笔记一_初次登陆配置 Armbian 系统

    目录 初次登陆配置 arm 系统 参考链接和当前场景 初次登陆配置 root 密码 默认终端 普通用户 无线网络 时间和地区设置 关闭系统 初次登陆配置 arm 系统 参考链接和当前场景 参考燃吹哥哥的这篇博客 真的炒鸡详细 xff1a 猿
  • Armbian 笔记五_如何在 Armbian 上安装 xfce4 桌面

    目录 使用 armbian software 选择 Desktop 安装 xfce4 桌面 准备工作 正常开机 必须存在着一个普通用户 连接有线网络 下载安装设置 armbian software 201 是 Desktop 输入普通用户
  • 二维数组中的查找(杨氏矩阵(C语言+Java))

    二维数组中的查找这道题 xff0c 出自 剑指Offer 也是著名的杨氏矩阵 在一个 n m 的二维数组中 xff0c 每一行都按照从左到右递增的顺序排序 xff0c 每一列都按照从上到下递增的 输入一个数 xff0c 判断矩阵中是否存在这
  • 【操作系统实验】Ubuntu Linux 虚拟机目录文件操作

    文章目录 目录的创建和删除创建目录删除目录 文件的创建和删除创建文件删除文件 复制目录 文件移动目录 文件 目录的创建和删除 创建目录 mkdir 命令 功能描述 xff1a mkdir命令用来创建指定名称的目录 要求创建目录的用户在当前目
  • mysql-8.0.30最新密码重置方法,看这一篇就够了

    博主自己多次忘记自己本地MySQL的密码 xff0c 多次 删库跑路 xff0c 现写下这篇技术贴 xff0c 一来是为后续网友们遇到相同问题可以少走弯路 xff0c 二来是给自己做一个备忘录 之前查阅了很多关于更改MySQL密码的方式是在
  • Centos7安装OpenStack Rocky版本和openstack基本使用

    文章目录 环境 xff1a 设置主机名验证配置域名和IP映射关闭防火墙和SeLinux时间同步配置OpenStack rocky的yum源文件安装centos release openstack rocky安装openstack客户端安装数
  • 详解%d、%%d、%%%d和\\%d的区别

    1 d xff0c 表示按整型输出后面给出的变量的值 2 d xff0c 这就会被拆成两部分看待 xff0c 一是 在C语言中就是输出一个 xff0c 而是 d 就是一个普通字符 xff0c 所以当 d 在一起时 xff0c 其含义就是输出
  • C语言数组小记1

    在一维数值里 xff1a xff08 假设a 0 的地址为2000 xff09 如 xff1a int a 61 10 9 8 7 6 5 xff1b printf xff08 d d d xff0c a xff0c a 0 xff0c a
  • C语言数组小记2

    示例 xff1a 在二维数组下行与列的问题 如 xff1a int a 3 3 61 9 8 7 6 5 4 3 2 1 假设我们a 0 0 的地址是2000 xff0c a 0 1 的地址是2004 xff0c 相差4个字节 printf
  • 正点stm32串口中断理解

    首先把程序放上来 xff0c 最后结论总结在最后 u8 USART RX BUF USART REC LEN u16 USART RX STA 61 0 void USART1 IRQHandler void 串口1中断服务程序 u8 Re

随机推荐

  • windows用xrdp方式远程桌面连接ubuntu

    windows系统 xff1a win10 ubuntu系统 xff1a 18 04 5 参考文章 xff1a https forum ubuntu org cn viewtopic php f 61 54 amp p 61 3221658
  • Linux中用vim编辑器打开时自动补入头文件,注释方法

    1 首先我用的是乌班头的linux xff0c 打开终端 2 通常我们打开终端的时候是直接在home目录下3 我们直接直接退到根目录下 xff0c 找到etc目录 4 输入sudo vi etc vim vimrc 其实熟练的也可以234步
  • HTTP中get、post、put、delete的区别

    今天开发遇到了 put请求 xff0c 顺便过来拔拔草 xff01 先说说最常用的get请求跟post请求的区别 xff1a GET请求 xff1a 一般是获取服务器资源 xff1b get请求的查询参数需要挂载请求地址中 xff1b 请求
  • ubuntu网络无法连接(桥接模式)

    ubuntu桥接模式网络无法连接 问题描述 问题描述 最近几天遇到了一个网络配置问题 xff0c 因为之前的虚拟机崩了 xff0c 我就跟换了ubuntu21 04版本 xff0c 创建虚拟机的时候就选了桥接模式 xff0c 虚拟网络编辑器
  • centos7安装Prometheus+Grafana步骤

    sentos7安装Prometheus 43 Grafana 环境部署规划表 服务端 监视器 Prometheus服务端 Grafana服务端CentOS 7 9grafana192 168 3 230客户端 被监控主机 CentOS 7
  • gitlab-ce安装

    gitlab ce安装 sentos 下载 wget http mirrors tuna tsinghua edu cn gitlab ce yum el7 gitlab ce 12 9 0 ce 0 el7 x86 64 rpm 2021
  • gitlab-runner升级

    gitlab runner版本升级 添加GitLab官方仓库 For Debian Ubuntu Mint curl L https packages gitlab com install repositories runner gitla
  • docker可视化工具Shipyard

    Docker Shipyard Shipyard简介 shipyard是一个开源的docker管理平台 xff0c 其特性主要包括 xff1a 支持节点动态集群 xff0c 可扩展节点的规模 xff08 swarm etcd方案 xff09
  • jira8安装

    Jira8 3 3安装 下载jira安装包 xff0c 破解包和jdk包 链接 xff1a https pan baidu com s 1yHsXkW1ZpkcNQeBkvE Hog 提取码 xff1a zzzz 安装数据库 网上很多就不在
  • goteleport10.0本地安装使用

    goteleport10 0本地安装使用 环境说明 master xff1a 192 168 8 132 node1 xff1a 192 168 8 131 node2 xff1a 192 168 8 133 master本地生成域名证书
  • [csp2019]Emiya家今天的饭

    作为提高组 d 2 t 1 d2t1 d 2 t 1 xff0c 比去年难 所以这道题我打的特别的差 32pts 这道题我们很显然可以看到可以打一个暴力 复杂度
  • React 函数组件导出自定义方法的办法说明

    在进行React开发时 xff0c 函数组件是比较方便的 xff0c 由于函数组件没有this指针 xff0c 因此如果想在父组件里调用函数型子组件的方法 xff0c 就需要用到React useImperativeHandle 这个帮助函
  • centos7防火墙关闭telnet端口不通

    root 64 zabbix agen2 systemctl status firewalld firewalld service firewalld dynamic firewall daemon Loaded loaded usr li
  • centos7安装配置夜莺V5+睿象云实现电话短信告警

    服务器清单 hostnameipmaster192 168 8 128zabbix agen1192 168 8 134 master安装夜莺依赖 install prometheus mkdir p opt prometheus wget
  • (踩坑指南)cd .ssh返回-bash: cd: .ssh:No such file or directory怎么办

    1 cd ssh返回 bash cd ssh No such file or directory怎么办 出现如下界面 有时候没必要在细节上过于拘泥 xff0c 不如直接配置秘钥 xff0c 反而一切都妥妥的了 2 如何保存退出 xff1f
  • Python数据处理工具—去除TXT文件里面相同的数据

    前言 本次分享的是一个对TXT数据进行处理的一个小工具 xff0c 功能如题 xff0c 是把TXT里面相同的数据给清洗掉是剩下唯一的一个 一 数据 随便在文件里面写了一点数据 xff0c 可以看到里面有很多重复的数据 xff0c 那么里面
  • Python进行ffmpeg推流和拉流rtsp、rtmp

    流媒体协议 xff0c 英文学名Streaming Protocol xff0c 用一句人话来解释 xff1a 流媒体协议是一种用于通过 Web 传递多媒体的协议 传统视频流协议 xff1a RTMP和RTSP xff0c 其中 RTMP
  • ROS Python 入门学习笔记--1--工作空间与功能包的创建

    上一节我们已经成功安装了ROS xff0c 并且还进行了小海龟实验的一个初步探索 xff0c 这一节主要给大家介绍一下ROS工作空间与功能包的创建 先来聊一下ROS的文件结构 xff1a 图片来源 xff1a 中国大学MOOC 在ROS当中
  • python运算符&用法的详细介绍

    目录 1 算数运算 2 比较运算符 3 成员运算符 4 逻辑运算 5 赋值运算 附 xff1a 类型转换 1 算数运算 运算符 xff1a 43 加 减 乘 除 整除 余数 幂运算 多用于整数 浮点数进行计算 43 也可用于字符串 xff0
  • 第三篇 树莓派的串口通信和语音识别模块

    目录 一 串口 xff08 UART xff09 二 wiringPi提供的串口API 三 语音识别模块 1 阅读模块代码 代码阅读工具 xff1a Souces Insight4 0安装 激活 汉化等 语音识别 xff08 口令模式 xf