TTS 真人发音 SYN6288 模块-Arduino中文社区 - Powered by Discuz! Archiver

553445903 发表于 2018-8-4 13:47

为什么我Serial1.begin报错呀

Zoologist 发表于 2018-8-8 11:13

553445903 发表于 2018-8-4 13:47
为什么我Serial1.begin报错呀

我用的是 arduino leonardo

share366 发表于 2018-8-25 00:19

你好,我用的是: XFS5152真人发音TTS语音模块
上传后没有声音,请问有没有原代码下载》?

前两步,串口数据监测一致
到第三步了监测有数据, 数据有差异,不发声
请问是什么原因?

share366 发表于 2018-8-25 01:00

本帖最后由 share366 于 2018-8-25 12:58 编辑

问题更新……看楼下

share366 发表于 2018-8-25 12:35

本帖最后由 share366 于 2018-8-25 13:00 编辑

从串口监测数据看差不多,就是无声音,请帮帮我




现在的代码如下
-------------------------------------------------------------------------
//接下来在上面代码的基础上继续修改,集成直接串口发送
//要输出的字符串
char buffer[]="宇音天下";

//实际汉字长度
#define BSIZE (sizeof(buffer)/3)

//存放转化后的汉字 Unicode值
char character;


//根据字符串计算计算出来的送到串口的值
char output;
char shuo;



void setup() {
//Serial1.begin(9600);
Serial.begin(9600);
delay(5000);

}


void loop() {




//将 UTF8 转化为Unicode
for (int i =0;i<BSIZE;i=i+1)
{
character=((buffer&0xF)<<4)+((buffer>>2)&0xF);
character=((buffer&0x3)<<6)+(buffer&0x3F);
Serial.print(character&0xFF,HEX);
Serial.print(' ');
Serial.print(character&0xFF,HEX);
Serial.print(' ');
}
Serial.println("");


output=0xFD;
output=(BSIZE*2+3)>>8;
output=((BSIZE*2+3)&0xFF);
output=0x01;
output=0x03;
//把字符串定义搬过去
for (int i=0;i<BSIZE*2;i++)
{
output=character;
}

//计算一个校验和
output=output;
for (int i=1;i<BSIZE*2+5;i++)
{
output=output ^ output;
}

for (int i=0;i<BSIZE*2+6;i++) {
Serial.print(output&0xFF,HEX);
Serial.print(' ');
Serial.write(output);//Serial1.write(output);这1去掉了
}
Serial.println(' ');


//首先输出一次Arduino
//原始字符串
//UTF8 的值

for (int i=0;i<BSIZE*3;i++)
{
Serial.print(buffer&0xFF,HEX);
Serial.print(' ');
}
Serial.println(' ');





Serial.println(' ');
delay(15000);

}



zgy2018 发表于 2018-9-7 23:54

好东西,留个足迹,谢谢分享

明娃子 发表于 2018-9-20 13:44

这个挺好

zhangchangsheng 发表于 2019-10-6 15:01

本帖最后由 zhangchangsheng 于 2019-10-6 15:07 编辑

您好, 我用了您的代码 现在 Serial.print(buffer&0xFF,HEX);报错
Sound2:37:25: error: invalid operands of types 'char ' and 'int' to binary 'operator&'

Sound2:91:43: error: invalid operands of types 'char' and 'char ' to binary 'operator^'

Sound2:99:26: error: invalid operands of types 'char ' and 'int' to binary 'operator&'
可以给解决一下是哪里问题吗?


char buffer[] = "宇音天下";
//实际汉字长度
#define BSIZE (sizeof(buffer)/3)
//存放转化后的汉字 Unicode值
char character;
//根据字符串计算计算出来的送到串口的值
char output;
void setup() {
Serial.begin(9600);
Serial.begin(9600);
      delay(5000);
}
void loop() {
//首先输出一次Arduino 原始字符串 UTF8 的值
for (int i =0;i<BSIZE*3;i++) {
   Serial.print(buffer&0xFF,HEX);
      Serial.print(' ');
}
Serial.println(' ');
//将 UTF8 转化为 Unicode
    for (int i =0;i<BSIZE;i=i+1) {
      character=((buffer&0xF)<<4)+((buffer>>2)&0xF);
      character=((buffer&0x3)<<6)+(buffer&0x3F);
      Serial.print(character&0xFF,HEX);
      Serial.print(' ');
      Serial.print(character&0xFF,HEX);
      Serial.print(' ');   
    }
Serial.println("");
output=0xFD;
output=(BSIZE*2+3)>>8;
output=((BSIZE*2+3)&0xFF);
output=0x01;
output=0x03;
//把字符串定义搬过去
for (int i=0;i<BSIZE*2;i++) {
      output=character;
    }
//计算一个校验和
output=output;
for (int i=1;i<BSIZE*2+5;i++) {
      output=output ^ output;
    }
for (int i =0;i<BSIZE*2+6;i++) {
      Serial.print(output&0xFF,HEX);
      Serial.print(' ');
      Serial.write(output);
    }   
Serial.println(' ');
delay(15000);
}

Zoologist 发表于 2019-10-6 20:14

zhangchangsheng 发表于 2019-10-6 15:01
您好, 我用了您的代码 现在 Serial.print(buffer&0xFF,HEX);报错
Sound2:37:25: error: invalid operan ...

试试这个哈

//要输出的字符串
char buffer[]="宇音天下";
//实际汉字长度
#define BSIZE (sizeof(buffer)/3)
//存放转化后的汉字 Unicode值
char character;

//根据字符串计算计算出来的送到串口的值
char output;

void setup() {
Serial1.begin(9600);
Serial.begin(9600);
      delay(5000);
}

void loop() {
//首先输出一次Arduino 原始字符串 UTF8 的值
for (int i =0;i<BSIZE*3;i++) {
   Serial.print(buffer&0xFF,HEX);
      Serial.print(' ');
}
Serial.println(' ');
//将 UTF8 转化为 Unicode
    for (int i =0;i<BSIZE;i=i+1) {
      character=((buffer&0xF)<<4)+((buffer>>2)&0xF);
      character=((buffer&0x3)<<6)+(buffer&0x3F);
      Serial.print(character&0xFF,HEX);
      Serial.print(' ');
      Serial.print(character&0xFF,HEX);
      Serial.print(' ');      
    }
Serial.println("");

output=0xFD;
output=(BSIZE*2+3)>>8;
output=((BSIZE*2+3)&0xFF);
output=0x01;
output=0x03;
//把字符串定义搬过去
for (int i=0;i<BSIZE*2;i++) {
      output=character;
    }
//计算一个校验和
output=output;
for (int i=1;i<BSIZE*2+5;i++) {
      output=output ^ output;
    }   

for (int i =0;i<BSIZE*2+6;i++) {
      Serial.print(output&0xFF,HEX);
      Serial.print(' ');
      Serial1.write(output);
    }   

Serial.println(' ');

    delay(15000);
}

zhangchangsheng 发表于 2019-10-7 07:46

Zoologist 发表于 2019-10-6 20:14
试试这个哈

//要输出的字符串


Arduino:1.8.10 (Windows 7), 开发板:"Arduino Nano, ATmega328P (Old Bootloader)"

D:\BaiduYunDownload\语音合成模块V2.0资料\6288原创资料\安然之家原创\Syn6288_Arduino例程\Sound2\Sound2.ino: In function 'void loop()':

Sound2:20:25: error: invalid operands of types 'char ' and 'int' to binary 'operator&'

Sound2:47:43: error: invalid operands of types 'char' and 'char ' to binary 'operator^'

Sound2:51:26: error: invalid operands of types 'char ' and 'int' to binary 'operator&'

exit status 1
invalid operands of types 'char ' and 'int' to binary 'operator&'

在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。
还是会报错,您编译不报错?
页: 1 2 [3] 4 5
查看完整版本: TTS 真人发音 SYN6288 模块