soxitoday 发表于 2012-8-22 12:50:45

串口不同波特率下显示乱码

谁知道为什么不同波特率下串口窗口显示会是乱码呢?
下面的例子如果改为9600就可以,但是300,4800,14400,115200等等就是乱码。为什么呢?
void setup()
{
Serial.begin(115200);
}

void loop(){

Serial.print('Testing...');
}

maojidan 发表于 2012-8-22 13:22:07

串口窗口的接收波特率必须和单片机的发送波特率一致

麽麽茶㊣ 发表于 2012-8-22 13:32:05

楼上的 +1:)

soxitoday 发表于 2012-8-22 19:14:11

谢谢二楼的回答。
1、你是说如果发送时为4800,那么串口窗口中的设置也必须是4800吗?我试过,还是不行。
2、如果单片机在做好以后波特率是固定的话,那么为什么蓝牙发送(接受)时的波特率确要用115200呢?虽然在此波特率下无法正常在串口窗口显示,但是可以正常工作。
3、还有我试用了除蓝牙外的其他通讯波特率(传送MIDI,波特率为31250),可以正常工作,但是在串口窗口中显示为乱码。
新手,问题较多。谢谢!

[email protected] 发表于 2012-8-22 19:21:50

soxitoday 发表于 2012-8-22 19:14 static/image/common/back.gif
谢谢二楼的回答。
1、你是说如果发送时为4800,那么串口窗口中的设置也必须是4800吗?我试过,还是不行。
...

1.串口窗口中的设置应与你的程序中的设计相同,就是Serial.begin()设置的那个
2.单片机本身波特率可变
3.你要改串口窗口的波特率设置啊

soxitoday 发表于 2012-8-22 19:24:19

[email protected] 发表于 2012-8-22 19:21 static/image/common/back.gif
1.串口窗口中的设置应与你的程序中的设计相同,就是Serial.begin()设置的那个
2.单片机本身波特率可变
3 ...

谢谢!我在串口窗口中把波特率改成了和Serial.begin()括号中的一致。但是还是显示乱码。难道你的不是吗?

pww999 发表于 2012-8-22 19:29:38

什么单片机?

弘毅 发表于 2012-8-22 19:31:30

arduino ide的串口监视器。。。是有bug的,并不是所有波特率都能用。。。你可以换用其他串口监视器试试看。

soxitoday 发表于 2012-8-22 19:33:26

是Mega 2560的板子。具体的设置见下图,不知道哪里不对。

pww999 发表于 2012-8-22 19:34:34

"   "

??

soxitoday 发表于 2012-8-22 19:36:33

弘毅 发表于 2012-8-22 19:31 static/image/common/back.gif
arduino ide的串口监视器。。。是有bug的,并不是所有波特率都能用。。。你可以换用其他串口监视器试试看。

原来如此啊,有时间去试试其它的串口监视器。感谢!

Randy 发表于 2012-8-23 09:12:20

soxitoday 发表于 2012-8-22 19:36 static/image/common/back.gif
原来如此啊,有时间去试试其它的串口监视器。感谢!

可以找一下市面上的一些串口工具即可试!

thelover 发表于 2012-8-26 00:56:11

我另外补充一点, 如果你用的是USB转串口的话, 需要注意以下芯片的型号, 有的USB转串口上不了115200之前调试arm板遇到过.

推荐USB转TTL芯片: PL2303 或者 FT232

amnoone 发表于 2012-8-26 12:43:29

不光是“arduino ide的串口监视器。。。是有bug的,并不是所有波特率都能用。。。你可以换用其他串口监视器试试看。”我的一个实验就是如此,即便使用不同的串口监视软件。花了很久时间对比他人的程序才知道程序没问题。

soxitoday 发表于 2012-8-28 08:44:27

看样子还真是个问题。有谁有完美的解决方案吗?
页: [1] 2
查看完整版本: 串口不同波特率下显示乱码