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&'
在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。
还是会报错,您编译不报错?