Stormer 发表于 2017-7-31 04:49:14

Serial.println()执行的时候程序就中断了!

本帖最后由 Stormer 于 2017-7-31 05:17 编辑

在写一个LED矩阵输出的程序。 代码里和串口监视器里的比特率一样都是19200(也试过9600)。

刚开始写程序的时候我还到处用Serial.print来输出变量值,可是后来不知道为何只要用到这个函数程序就会在Serial.print的位置中断。


而且在串行监视器里输出的值末尾也很诡异,乱码的样子。比如:

byte n2 = B00000100;   

Serial.println(n2,BIN);

串行监视器里显示:

10T⸮

这什么鬼,输出100就对了啊。

同样的代码位置,我改一下:

Serial.println(666);

这下直接中断了,串行监视器一片空白什么都没有。

再改:
Serial.print('a');

这样可以在监视器看到输出a,而且程序可以正常执行了。


好奇怪啊,感觉现在Serial.print只能正常的输出单个字母了。

求大神指点!谢谢~

sailor0908 发表于 2017-7-31 08:24:39

应该是程序其他部分影响的,你单独写个新程序只执行你上面的例子应该不会有问题.还有你的串口监视器波特率要设得和程序一样否则会乱码.

吃樱桃不吐胡 发表于 2017-7-31 09:49:02

是不是 Serial.println( )命令还没执行完就来中断了?

Super169 发表于 2017-7-31 09:56:08

先做個簡單程式, 執行幾個不同的 Serial.println(), 看看你的串口是否正常.

如果串口正常, 就是你的程式中, 某些地方影響了串口咦

林定祥 发表于 2017-7-31 16:36:16

串口是否还有其他的程序,软件上或硬件上被占用。

Ansifa 发表于 2017-7-31 20:01:18

LED矩阵?耗电太大抽风了吧

通幽境 发表于 2017-8-1 15:22:28

在串口输出之后加一句Serial.flush(); 试试,不行的话试试Serial.write(n2, BIN);
Serial.println(666); 没有定义类型。

Damn_intuition 发表于 2017-8-9 18:47:51

串口干扰。建议降低波特律试试,最好找逻分看看

Stormer 发表于 2017-8-10 05:27:58

Damn_intuition 发表于 2017-8-9 18:47
串口干扰。建议降低波特律试试,最好找逻分看看

谢谢,就是串口干扰的。
页: [1]
查看完整版本: Serial.println()执行的时候程序就中断了!