stm32驱动syn6288语音合成芯片
一.6288电路原理图
二.模块与 USB 转 TTL下载器的连接
根据模块的端口 VCC-RXD-TXD-GND (如图一实物引 脚 ) 对 应 连 接 USB 转 TTL 下 载 器 的 VCC-TXD-RXD-GND。 其中模块的 VCC 端可以为 3-5V 的电压输入。BY 为检测是否忙碌端口,可以选择 性连接单片机的 IO 口,默认程序中未对该端口进行程 序编写。
如插入的 USB转 TTL下载器或者串行端口不为com1 或 者 com2 请根据以下操作进行修改正确! 1、 右键“我的电脑”—选择“设备管理”—在弹出框中可以看到 如不是需要 的端口,在“ ”右键“属性”--在弹出框中,选择“端口设置”----点击“高级”选 项----在弹出框中选择“ ” 将 其选择为 com1 或者 com2,与测试软件的端口对应
即可点击确认完成修改操作,从新打开测试软 件,继续进行相关操作。
三.32代码(库函数版本)
/*
STM32F103VCT6与SYN6288硬件接口非常简单,采用串口通讯方式,
PA9(USART/TX)-->SYN6288_RX(芯片RX引脚需要外接个电平转换,我画的测试板上已经有转换电路了)
PA10(USART/RX)<--SYN6288_TX
PE2(PIN1),<---> SYN6288_BUSY (可不接)
调用示例:
TTSPlay('m',"欢迎光临xxxx休闲娱乐中心");
*/
函数代码:
/***********************************************
声音播放代码,实现自动计算校验值
第一参数:提示音乐音类型,具体参考官方示例程序
第二参数:播放的文本内容
(SoundVol是个音量值的全局变量)
************************************************/
void TTSPlay(u8 sound,char *Text)
{
va_list arg_ptr;
u8 i=0,xorcrc=0,uLen;
u8 SoundBuf[110]; //操作语音提示缓冲
char tmpBuf[120]; //
uLen = (u8)vsprintf(tmpBuf, Text, arg_ptr);
for (i=0;i<100;i++) SoundBuf=0x00;
SoundBuf[0]=0xFD;
SoundBuf[1]=0x00;
SoundBuf[2]=uLen+15;
SoundBuf[3]=0x01;
SoundBuf[4]=0x01;
SoundBuf[5]='[';
SoundBuf[6]='v';
SoundBuf[7]=ASCIICODE[SoundVol/10];
SoundBuf[8]=ASCIICODE[SoundVol%10];
SoundBuf[9]=']';
SoundBuf[10]=0x73;
SoundBuf[11]=0x6F;
SoundBuf[12]=0x75;
SoundBuf[13]=0x6E;
SoundBuf[14]=0x64;
SoundBuf[15]=sound; //有效值a-v,函数的第一个参数,声音提示之前的音乐声
SoundBuf[16]=0x2C;
for (i=0;i<uLen;i++)
{
SoundBuf[17+i]=tmpBuf;
}
for (i=0;i<uLen+17;i++)
{
xorcrc=xorcrc ^ SoundBuf;
USART_Send_Byte(SoundBuf);
}
USART_Send_Byte(xorcrc);
}
/***************************
串口配置函数
***************************/
void USART_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
USART_Cmd(USART1, ENABLE);
USART_ClearFlag(USART1, USART_FLAG_TC);
}
/***************************************************************************
参数说明:mydata待发送的数据
返回说明:无
***************************************************************************/
void USART_Send_Byte(u8 mydata)
{
USART_ClearFlag(USART1,USART_FLAG_TC);
USART_SendData(USART1, mydata);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
USART_ClearFlag(USART1,USART_FLAG_TC);
}
stm32驱动syn6288语音合成芯片相关推荐
- STM32与SYN6288语音合成模块的使用
@[TOC]SYN6288语音合成模块的使用 SYN6288语音合成模块是一款播报声音的模块,SYN6288语音合成模块的使用的方法非常简单,这里我将整理下发布 待完善中-
- STM32驱动AD7366-5/AD7367-5芯片
目录 芯片介绍 芯片引脚定义 芯片电路图 根据时序写驱动代码 运行环境 时序与代码讲解 完整的代码 在实验室项目上,根据需求最终选用到了这款AD7367-5,在此记录一下这款AD芯片的驱动调试过程.目 ...
- 基于ArduinoUNO的LD3320语音识别+SYN6288语音合成的智能分类垃圾桶
文章目录 写在前面 器件 连接 部分代码 运行结果 小结 写在前面 接上一篇文章,这次是集合了语音识别+语音合成(就是语音播报实现一种反馈)+SG90舵机实现垃圾桶的开与闭,给出上篇文章链接,如果对L ...
- 语音合成芯片在高速公路收费系统中的应用
语音合成芯片在高速公路收费系统中的应用 近几年,高速公路收费模式在发生变化,从以前只有一个出入窗口为ETC式收费,其余出入窗口几乎全是传统式收费到现在的几乎只有一个窗口是传统式收费,其余出入窗口大多都 ...
- 基于STM32的DS1302时钟芯片驱动
基于STM32的DS1302时钟芯片驱动 /****************************************************************************** ...
- stm32读取目标芯片_使用stm32驱动RC522读IC卡(代码留言邮箱)
RC522与PN532简介 关于STM32驱动方式 接线说明 程序烧录 查看卡号 总结 RC522与PN532简介 在写这篇文章之前有写过一篇有关于PN532的文章,RC522与PN532在使用上都可 ...
- 【常用芯片】ULN2003工作原理及中文资料(实例:STM32驱动28BYJ48步进电机)
ULN2003的基本介绍 ULN2003的概述 ULN2003是高耐压.大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成.一般采用DIP-16 或SOP-16 塑料封装. ULN2003的主要特点 ...
- 第四章 STM32+LD3320+SYN6288+DHT11实现语音获取温湿度数值(上)
前面三章,我们介绍了LD3320.SYN6288和DHT11温湿度传感器,并把代码资料一一分享给大家了,拿到代码后,我们就可以做一个简单的语音识别毕设了,即通过语音命令获取当前环境的温湿度数值,(但还 ...
- 关于STM32驱动DS1302实时时钟的一点思考
关于STM32驱动DS1302实时时钟的一点思考 之前用51驱动过DS1302,没用多久就输出了正确的时间.当时以为这块芯片其实没啥,很简单.但是现在用STM32做项目,用到同样的芯片,以为这有何难, ...
最新文章
- 这家中国芯片公司年利润追上英伟达了?假的
- 基于Java的RDMA高性能通信库(五):JXIO
- 操作系统的初始化流程简图
- Python学习日记day4 字符编码
- CSDN挑战编程——《数学问题》
- linux脚本实现红绿灯,javascript 如何实现红绿灯效果呢?
- foxmail邮箱日历怎么新建事务
- 1 SE21开发包创建
- 删除进程id_Mysql新增删除数据失败,提示锁表
- 微信小游戏凭什么拿走开发者 70% 的日流水?
- 分布式红锁的加锁的lua底层设计原理
- 真机开包!国产至强5600服务器35张图赏
- (转)Aladdin, 领先的投资管理整合平台
- 吴恩达机器学习笔记——线性代数知识回顾、梯度下降、多项式线性回归、正则方程
- 谷歌浏览器Chrome设置不缓存
- #华为云在HC2018#华为云学院
- Android无限流量统计,无限流量套餐国内也有 但并没什么用
- teamviewer远程黑屏问题
- 互联网+废品回收项目可行性分析报告
- LoRa笔记03 LoRa sx1276 sx1278空中唤醒研究