LQ_TTS6288语音模块

//注意:51单片机使用12M晶振串口发送数据会有误差而不能工作

// 所以只能使用11.0592M的晶振

main.c

#include <reg52.h>

#include <string.h>

#include "uart.h"

void syn6288(char*  tex,unsigned  char changdu);

/****************************************************************************

* 函  数:void  main(void)

* 功  能:主函数

* 参  数:无

* 返回值:无

* 更  新:无

* 备  注:无

****************************************************************************/

void  main(void)

{

/****************需要发送的文本**********************************/

char code text[] =  {"[v10][m10]前方距离100米 "};

char code hubei[] =  {"[v9][m9]hello world!"};

/****************串口的初始化************************************/

uartinit();

syn6288(text,sizeof(text));

uart_delay(200000); //延时很重要

syn6288(hubei,sizeof(hubei));

uart_delay(100000); //延时很重要

while(1);

}

/****************************************************************************

* 函  数:void syn6288(char*  tex,unsigned  char changdu)

* 功  能:语音读取字符串

* 参  数:tex--------字符串的地址

*         changdu----字符串tex的长读

* 返回值:无

* 更  新:无

* 备  注:无

****************************************************************************/

void syn6288(char*  tex,unsigned  char changdu)

{

unsigned  char  headOfFrame[5];

unsigned  char  length;

unsigned  char  ecc  = 0;  //定义校验字节

unsigned  int i=0;

length =changdu;
//需要发送文本的长度

/*****************发送过程**************************************/

headOfFrame[0] = 0xFD ;
//构造帧头FD

headOfFrame[1] = 0x00 ;
//构造数据区长度的高字节

headOfFrame[2] = length + 3;
//构造数据区长度的低字节

headOfFrame[3] = 0x01 ;
//构造命令字:合成播放命令

/*****************带背景音乐**************************************/

headOfFrame[4] = 0x21 ;
//构造命令参数:编码格式为GBK

/*****************不带背景音乐**************************************/

//headOfFrame[4] = 0x01 ;
//构造命令参数:编码格式为GBK

for(i = 0; i<5; i++)  
//依次发送构造好的5个帧头字节

{

ecc=ecc^(headOfFrame[i]);
//对发送的字节进行异或校验

SBUF = headOfFrame[i];

while (TI== 0) {;}  
//等待发送中断标志位置位

TI = 0; //发送中断标志位清零

}

for(i = 0; i<length; i++)  
//依次发送待合成的文本数据

{

ecc=ecc^(tex[i]);
//对发送的字节进行异或校验

SBUF = tex[i];

while (TI== 0) {;}

TI = 0;

//uart_delay(10);

}

//uart_delay(1000);

SBUF=ecc;
//最后发送校验字节

while(TI== 0);

TI=0;

}

uart.c

#include <reg52.H>

#include <stdio.h>

#include <string.h>

#include "uart.h"

/****************************************************************************

* 函  数:void uartinit(void)

* 功  能:串口中断初始化

* 参  数:无

* 返回值:无

* 更  新:无

* 备  注:无

****************************************************************************/

void uartinit(void)     //定时器工作方式2

{

PCON|= 0x80;

SCON = 0x50;      //REN=1允许串行接受状态,串口工作模式1

TMOD|= 0x20;

//TH1  = 0xFD;    
//baud*2  /* reload value 19200、数据位8、停止位1。效验位无 (11.0592)

TH1 = 0xFA;
//baud*2  /*  波特率4800、数据位8、停止位1。效验位无 (110.592M)

TL1 = 0xFA;

TR1  = 1;

RI = 0;

TI = 0;

ES   = 1;        //开串口中断

EA   = 1;        // 开总中断

}

/****************************************************************************

* 函  数:void USART_Send_Byte(unsigned char Data)

* 功  能:串口发送一个字符串

* 参  数:Data--发送的字节

* 返回值:无

* 更  新:无

* 备  注:无

****************************************************************************/

void USART_Send_Byte(unsigned char Data)

{

SBUF=Data;

while (!TI);

TI=0;

}

/****************************************************************************

* 函  数:void USART_Send_Enter(void)

* 功  能:串口发送字符串

*   串口发送0d 0a ,即回车换行

* 注:此函数就是发送0d 0a这两个字节,在“超级终端”上会有回车换行的效果

* 参  数:Data--发送的字节

* 返回值:无

* 更  新:无

* 备  注:无

****************************************************************************/

void USART_Send_Enter(void)

{

USART_Send_Byte(0x0d);

USART_Send_Byte(0x0a);

}

/****************************************************************************

* 函  数:void USART_Send_Str(char *Data)

* 功  能:串口发送字符串

* 参  数:Data--发送的字符串指针

* s:指向字符串的指针

* 注:如果在字符串中有‘\n‘,则会发送一个回车换行

* 返回值:无

* 更  新:无

* 备  注:无

****************************************************************************/

void USART_Send_Str(char *Data)

{

unsigned char i;

unsigned char len = strlen(Data)-1;

for (i=0; i<len; i++)

{

USART_Send_Byte(Data[i]);

}

if(Data[i]==‘\n‘)

{

USART_Send_Enter();

}

else

{

USART_Send_Byte(Data[i]);

}

}

/****************************************************************************

* 函  数:void numtostr(unsigned int dat,char *str)

* 功  能:将一个32位的变量dat转为字符串,比如把1234转为"1234"

* 参  数:dat:带转的long型的变量

*            str:指向字符数组的指针,转换后的字节串放在其中

* 返回值:无

* 更  新:无

* 备  注:无

****************************************************************************/

void numtostr(unsigned int dat,char *str)

{

char temp[20];

unsigned int i=0,j=0;

i=0;

while(dat)

{

temp[i]=dat%10+0x30;

i++;

dat/=10;

}

j=i;

for(i=0;i<j;i++)

{

str[i]=temp[j-i-1];

}

if(!i) {str[i++]=‘0‘;}

str[i]=0;

}

/****************************************************************************

* 函  数:void USART_Put_Num(unsigned int dat)

* 功  能:串口发送数值

* 函数中会将数值转为相应的字符串,发送出去。比如 4567 转为 "4567"

* 参  数:无

* 返回值:无

* 更  新:无

* 备  注:无

****************************************************************************/

void USART_Put_Num(unsigned int dat)

{

char temp[20];

numtostr(dat,temp);

USART_Send_Str(temp);

}

/****************************************************************************

* 函  数: void delay(unsigned int i)

* 功  能: 延时子程序

* 参  数:无

* 返回值:无

* 更  新:无

* 备  注:无

****************************************************************************/

void uart_delay(unsigned int i)

{

unsigned char j;

for(i; i > 0; i--)

for(j = 500; j > 0; j--) ;

}

uart.h

#ifndef __UART_H__

#define __UART_H__

void uartinit(void);

void USART_Send_Byte(unsigned char Data);

void USART_Send_Enter(void);

void USART_Send_Str(char *Data);

void numtostr(unsigned int dat,char *str);

void USART_Put_Num(unsigned int dat);

void uart_delay(unsigned int i);

#endif

P3.1接口RXD

只需一个就串口接收可以发送问蹦转成语音

时间: 2024-08-07 21:20:08

LQ_TTS6288语音模块的相关文章

android开发中系统自带语音模块的使用

android开发中系统自带语音模块的使用需求:项目中需要添加语音搜索模块,增加用户体验解决过程:在网上搜到语音搜索例子,参考网上代码,加入到了自己的项目,完成产品要求.这个问题很好解决,网上能找到很多的资料,但是没有直接导入工程就能用的例子,我这里写了一个完整的Demo,代码可以直接粘贴到自己项目中去,实现了语音搜索,并将搜索结果展示.语音搜索大致流程:启动系统自带的Intent,Intent参数设置为RecognizerIntent.ACTION_RECOGNIZE_SPEECH,再加上一些

[硬件项目] 1、汽车倒车雷达设计——基于API8108A芯片简易智能语音模块的设计与实现

前言 汽车倒车防碰撞系统是一种辅助汽车泊车装置.低配的由超声波收发电路.回波放大电路.语音提示电路.数码显示.报警及温度补偿电路组成,高配的有时会带有后视视频系统.[1]      一.工作原理 如下图在汽车的尾部安装4个超声波探头,倒车时,采用往返时间测量法测量汽车尾部到障碍物的距离,通过数码管实时显示距离,当车尾部的超声波探头与障碍物的距离小于设定值的安全值时,通过蜂鸣器报警提示驾驶员. 这里测距一般采用4路超声波传感器分时隙工作,采用往返时间测量法测距,测距原理是当汽车进行倒车时,防碰撞系

006_STM32程序移植之_SYN6288语音模块

1. 测试环境:STM32C8T6 2. 测试模块:SYN6288语音模块 3. 测试接口: SYN6288语音模块: VCC------------------3.3V GND------------------GND TXD-----------------PB11 RXD-----------------PB10 BY------------------PB1 2. 串口使用串口一,波特率9600 单片机引脚------------CH340引脚 VCC------------------

转:催熟智能音箱,争夺一个人工智能之梦

原文:http://36kr.com/p/5079975.html 深圳的硬件方案商吴桥今年很"牛气":接到的合作电话络绎不绝,他拒绝掉的人也数不胜数. 感谢智能音箱.吴桥估摸说,自己平均每个月会接到20至30家公司的电话,来自互联网公司或硬件厂商,想跟他在智能音箱设计方案上合作.但他任总经理的海克莱特,在芯片方案商扎堆的深圳属于中等规模,同一时期内能承接的订单在3至4家左右.这意味着绝大多数打电话过来的人,会失望而归. 仅在深圳市南山区方圆一公里的范围内,就聚集了上百家智能音箱方案商

Unity3D 语音接入适用于pc、ios、android

语音接入 考虑到pc与ios.android三端的混服情况,所有录音的格式均存储为mp3格式,也是unity推荐的音频文件方式 前提:目前比较成熟的语音模块由科大讯飞平台提供的,目前我们需要的功能是把语音转化成文字,因此我们只需要下载相应的语音识别模块就可以了. 1)进入科大讯飞官网下载相应平台的sdk,目前我们只需要免费的语音识别就可以了,要创建相应的应用才能下载,里面的demo提供边录音边翻译的功能. 2)pc端的没有提供边录边能,要想在pc版进行录音可引入第三方库进行录音或者使用unity

学Arduino 需要做哪些准备?(引自&quot;知乎用户:郑兴芳,DhP&quot;的回答)

本人非电子专业,使用Arduino完全出于兴趣,目前主要用于实验过程中的自动化操作. 一.基础准备主要是看一些入门介绍的电子文档,如Arduino_Basic.PDF.ArduinoL2.PDF .<ARDUINO_NOTEBOOKv6>.<Getting Started with Arduino>.<Making Things Talk>前面两个PDF文档见如下地址 http://www.docin.com/p-33827760.htmlhttp://www.doci

利用Olami SDK 实现语音控制计算器(iOS)

博客链接:http://blog.csdn.net/scarlettzhao0602/article/details/76576836 一.简介: Olami Calculator是一款在键盘输入算式的普通计算器的基础上,增加了支持语音控制输入算式输出结果的人工智能计算器.此外还增加了多种动画效果,计算结果提示音功能,多元化主题换肤功能,以及保存计算公式,侧滑栏查看收藏记录等功能.网上也有许多语音计算器,但是打开看,只是添加了按钮提示音等,并不能识别我们对着计算器说的内容,而Olami Calc

供应车载i.MX6主板|车载i.MX6主板参数|车载i.MX6主板供应商

一.硬件规格 1.处理器:工业级/车规级芯片, Freescale ARM Cortex-A9 ,主频1.2GHz 2.内  存: DDR3 SDRAM  1G内存:可扩2G 3.FLASH:8G EMMC: 可扩16G/32G 4.功耗管理:可进入待机模式,降低功耗:深度休眠电流小于20mA:休眠状态3G模块可与外部通信,进行远程唤醒和数据上报. 5.复位电路.唤醒功能.蜂鸣器.实时时钟.LED灯.预留按钮 二.外设接口配置 1.外部存储: 1路SD卡:外接SATA硬盘 2.串口:5路UART

ZigBee交通事故警示装置

近年来,随着人们生活水平的提高和电子技术的快速发展,汽车已逐渐走进人们的生活,汽车电子化也已成为一种趋势.鉴于全球定位系统(GPS)能够实时方便.精准的提供经纬度.时间.速度等信息的优势,目前已广泛应用于汽车的监控.导航.定位等领域.本文研究重点是利用ZigBee模块技术来传输发生交通事故的车辆向周围车辆发出的警示信息. 1系统的总体设计 为了对连环追尾的恶性交通事故进行预防,设计一款以ATmegal28单片机为主控芯片的交通事故警示装置,该装置由GPS模块.无线收发模块.液晶显示模块.语音警示