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只能正常的输出单个字母了。
求大神指点!谢谢~
应该是程序其他部分影响的,你单独写个新程序只执行你上面的例子应该不会有问题.还有你的串口监视器波特率要设得和程序一样否则会乱码. 是不是 Serial.println( )命令还没执行完就来中断了? 先做個簡單程式, 執行幾個不同的 Serial.println(), 看看你的串口是否正常.
如果串口正常, 就是你的程式中, 某些地方影響了串口咦 串口是否还有其他的程序,软件上或硬件上被占用。 LED矩阵?耗电太大抽风了吧 在串口输出之后加一句Serial.flush(); 试试,不行的话试试Serial.write(n2, BIN);
Serial.println(666); 没有定义类型。 串口干扰。建议降低波特律试试,最好找逻分看看 Damn_intuition 发表于 2017-8-9 18:47
串口干扰。建议降低波特律试试,最好找逻分看看
谢谢,就是串口干扰的。
页:
[1]