设为首页收藏本站

极客工坊

 找回密码
 注册

只需一步,快速开始

查看: 516|回复: 8

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

[复制链接]
发表于 2017-7-31 04:49:14 | 显示全部楼层 |阅读模式
本帖最后由 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只能正常的输出单个字母了。

求大神指点!谢谢~

回复

使用道具 举报

发表于 2017-7-31 08:24:39 | 显示全部楼层
应该是程序其他部分影响的,你单独写个新程序只执行你上面的例子应该不会有问题.还有你的串口监视器波特率要设得和程序一样否则会乱码.
回复 支持 反对

使用道具 举报

发表于 2017-7-31 09:49:02 | 显示全部楼层
是不是 Serial.println( )命令还没执行完就来中断了?
回复 支持 反对

使用道具 举报

发表于 2017-7-31 09:56:08 | 显示全部楼层
先做個簡單程式, 執行幾個不同的 Serial.println(), 看看你的串口是否正常.

如果串口正常, 就是你的程式中, 某些地方影響了串口咦
回复 支持 反对

使用道具 举报

发表于 2017-7-31 16:36:16 | 显示全部楼层
串口是否还有其他的程序,软件上或硬件上被占用。
回复 支持 反对

使用道具 举报

发表于 2017-7-31 20:01:18 | 显示全部楼层
LED矩阵?耗电太大抽风了吧
回复 支持 反对

使用道具 举报

发表于 2017-8-1 15:22:28 | 显示全部楼层
在串口输出之后加一句Serial.flush(); 试试,不行的话试试Serial.write(n2, BIN);
Serial.println(666); 没有定义类型。
回复 支持 反对

使用道具 举报

发表于 2017-8-9 18:47:51 | 显示全部楼层
串口干扰。建议降低波特律试试,最好找逻分看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-10 05:27:58 | 显示全部楼层
Damn_intuition 发表于 2017-8-9 18:47
串口干扰。建议降低波特律试试,最好找逻分看看

谢谢,就是串口干扰的。
回复 支持 反对

使用道具 举报

高级模式  
您需要登录后才可以回帖 登录 | 注册  

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )  

GMT+8, 2017-9-23 04:41 , Processed in 0.043799 second(s), 9 queries , File On.

Powered by Discuz! X3.3 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表