科大讯飞语音芯片xfs5152CE,分享遇到的一些坑
首先 芯片手册的I2C地址是写地址,是8位的,真正的地址是7位地址,应该是0x40,最低位是读写位,读置1,为0x81,写置0,为0x80.
如果是模拟I2C倒无所谓,最坑的是我用的是寄存器,所以必须要用7位地址才可以,这个地方坑了我好几天。
其次,在用uart串口的是时候,每次上电芯片会返回一个状态值0x4A,但I2C是不会主动返回的,需要你去读取
我是在写入语音之后接着读取状态字节

上电第一次写入数据并读取,会得到0x4A,之后的再读取都是0x41,0x4F

程序部分
我用的是msp430F5438A,I2C3
void i2c3_start(unsigned char address)
{
UCB3I2CSA = address;
while(UCB3CTL1 & UCTXSTP);
UCB3CTL1 |= (UCTR + UCTXSTT);
while(!(UCB3IFG & UCTXIFG));
UCB3IFG &= ~UCTXIFG;
}
void i2c3_writebyte(unsigned char data)
{
UCB3TXBUF =data;
while(!(UCB3IFG & UCTXIFG));
UCB3IFG &= ~UCTXIFG;
}
void i2c3_writeNbyte(unsigned char* data,int len)
{
for(int i=;i<len;i++)
{
i2c3_writebyte(*data++);
}
}
void i2c3_readNbyte(unsigned char *data,unsigned char len)
{
UCB3CTL1 &= ~UCTR;
UCB3CTL1 |= UCTXSTT;
for(int i=;i<len;i++)
{
while(!(UCB3IFG & UCRXIFG));
UCB3IFG &= ~UCRXIFG;
if(i==len-)UCB3CTL1 |= UCTXSTP;
*data++ = UCB3RXBUF;
}
}
int xfs_set(unsigned char* cmd,int len,unsigned char *data,int n)
{
i2c3_start(0x40);
i2c3_writeNbyte(cmd,len);
i2c3_readNbyte(data,n);
return ;
}
未完待续
8月19号更新
上面的停止条件处需要加上标志位判断,不然后续i2c控制会卡死
void i2c3_readNbyte(unsigned char *data,unsigned char len)
{
UCB3CTL1 &= ~UCTR;
UCB3CTL1 |= UCTXSTT;
for(int i=;i<len;i++)
{
while(!(UCB3IFG & UCRXIFG));
UCB3IFG &= ~UCRXIFG;
if(i==len-)
{
UCB3CTL1 |= UCTXSTP;
while(UCB3CTL1 & UCTXSTP);
}
*data++ = UCB3RXBUF;
}
}
更新
以上为原创,请勿转载
欢迎讨论!
科大讯飞语音芯片xfs5152CE,分享遇到的一些坑的更多相关文章
- 安卓TTS语音合成经验分享(科大讯飞语音+)集成
应用场景:足浴软件,技师钟房安排调派和队列排序查看,语音播报提醒.老程序是使用双屏显卡,windows系统PC上运行一个无人值守桌面程序.如今安卓机顶盒(WIFI)和MINI电视棒通过HDMI接口和支 ...
- OTP语音芯片和掩模语音芯片(mask)的区别
OTP(One Time Programable)是MCU的一种存储器类型,意思是一次性可编程:程序烧入IC后,将不可再次更改和:因此OTP语音芯片就是指一次性烧录的语音IC. 从OTP定义上来看,只 ...
- AngularJS进阶(十八)在AngularJS应用中集成科大讯飞语音输入功能
在AngularJS应用中集成科大讯飞语音输入功能 注:请点击此处进行充电! 前言 根据项目需求,需要在首页搜索框中添加语音输入功能,考虑到科大讯飞语音业务的强大能力,遂决定使用科大讯飞语音输入第三方 ...
- 专业语音芯片MT8516 华为AM08蓝牙音箱
天猫精灵和亚马逊专用的语音芯片哦!联发科! 华为AM08蓝牙音箱 WT51F5161T的8052 微处理器,RC内振12MHz,具有16Kx8 的flash,硬件IIC,SPI,CEC,IR,RTC, ...
- 转:基于科大讯飞语音API语音识别开发详解
原文来自于: http://www.52wulian.org/android_voice/ 最近项目需要用到android语音识别,立马就想到科大讯飞,结合官方实例及阅读API文档,初步的完成了And ...
- 基于科大讯飞语音云windows平台开发
前记: 前段时间公司没事干,突发奇想想做一个语音识别系统,看起来应该非常easy的,但做起来却是各种问题,这个对电气毕业的我,却是挺为难的.谷姐已经离我们而去,感谢度娘,感谢CSDN各位大神,好歹也做 ...
- <交流贴>android语音识别之科大讯飞语音API的使用
因为最近在研究语音识别,所以借鉴了一下CreAmazing网友的帖子 Android系统本身其实提供有语音识别模块,在它的APIDemo里也有关于语音识别的sample,不过经过大多开发者的真机测 ...
- ROS语音交互(三)科大讯飞语音在ROS平台下使用
以上节tts语音输出为例 下载sdk链接:http://www.xfyun.cn/sdk/dispatcher 1.下载SDK,解压: 2.在ROS工作空间下创建一个Package: catkin_c ...
- Android 通过调用系统,如接口 谷歌语音、百度语音、科大讯飞语音等语音识别方法对话框
现在app在发展过程中会集成一些语音识别功能,不具有其自己的显影剂一般正在开发的语音识别引擎,所以在大多数情况下,它是选择一个成熟的语音识别引擎SDK集成到他们的app在. 平时,这种整合被分成两个, ...
随机推荐
- 批量处理txt文本文件到Excel文件中去----java
首发地址:http://blog.csdn.net/u014737138/article/details/38120403 不多说了 直接看代码: 下面的FileFind类首先是找到文件夹下面所有的t ...
- 解决ionic安装不上的方法
(1)打开nodeJs按正常步骤来install -g -d ionic ,等待执行完毕 (2) 不管成不成功,打开C:\Users\keranbing\AppData\Roaming\npm\no ...
- 竟然有人在群里谈交钱培训PI。。。。等哥哥有时间,断了你们的财路
PI是工具,很不错的工具.统一管理接口,这点对大公司来说还是有必要的.而且PI的日志记录很详细,用的好的话,绝对物超所值.
- django rest_framework vue 实现用户登录
django rest_framework vue 实现用户登录 后端代码就不介绍了,可以参考 django rest_framework 实现用户登录认证 这里介绍一下前端代码,和前后端的联调过程 ...
- 10年前错过比特币,如今有斯坦福区块链项目pi币,对标btc,手机免费挖矿详细教程。
这一个斯坦福几个博士创业者做一个项目,目前还处于早期阶段,除了每天点一下挖矿之外,貌似不需要其他的操作,不需要耗费流量资源和手机大量的运算能力,就是一个安静的App而已....国内目前知道的人还不太多 ...
- 程序员学习photoshop
对于一个程序员来说,掌握photoshop的一些基本操作是必要的. photoshop很简单,很多策划都会的. 为什么策划要会photoshop? 答案: 1:photoshop很简单 2:多掌握一门 ...
- HDU5126 stars(cdq分治)
传送门 题意: 先有两种操作,插入和查询,插入操作则插入一个点\((x,y,z)\),查询操作给出两个点\((x_1,y_1,z_1),(x_2,y_2,z_2)\),回答满足\(x_1\leq x\ ...
- docker更改默认存储路径
systemctl stop docker mkdir /data/docker cp -r /var/lib/docker/* /data/docker mv /var/lib/docker /va ...
- 20180610模拟赛T3——书本整理
[问题描述] 小明的书架上放了许多书,为了使书架变得整洁,小明决定整理书架,他将所有书按高度大小排列,这样排了之后虽然整齐了许多,但小明发现,书本的宽度不同,导致书架看上去还是有些凌乱.小明把这个凌乱 ...
- nginx 设置反向代理
一.多个路径指向同一ip的不同服务 参考地址:https://www.cnblogs.com/hanmk/p/9289069.html 编辑nginx.conf配置文件,新增加一个server模块,或 ...