Arduino 的 Serial.write 和 Serial.print 的区别在哪里

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino 的 Serial.write 和 Serial.print 的区别在哪里相关的知识,希望对你有一定的参考价值。

参考技术A 在打印机的日常使用中,有时会见到一些莫名其妙的文字。这些文字不是我们日常常见的文字,而像是外星文字。不要诧异,这种故障并不是什么灵异事件,只不过施打印乱码。打印乱码的产生和很多原因相关,例如驱动安装错误、程序修改错误都会造成打印乱码。对这这些故障,只要处理得当,完全可以解决。接下来笔者就来为您解读这些异常文字故障的处理方法。步骤/方法驱动程序引发的乱码故障处理  在出现打印乱码的故障中,由打印机驱动程序安装错误会引起的乱码故障。由于在打印机程序安装过程中,打印机驱动程序常常会与某些应用程序共用相同的动态链接文件,因此在对应用程序频繁执行卸载和删除操作时,打印机驱动程序也很容易受到破坏。而在这个过程中,打印机的程序一旦少了某个驱动文件,在打印机工作的时候就容易出现打印乱码的故障。对于这种故障,通常解决的法有以下几点:  首先,检查打印机的当前安装驱动程序是否是原机附带。保证打印机驱动程序的准确无误施解决驱动故障的第一步。如果不是因为这个原因,则卸载打印机所使用的驱动程序,并安装原装驱动程序,并重新启动打印机进行打印。安装完准确驱动之后,打印机再进行打印测试,看看此时的打印乱码故障是否能排除。    接下来,可以查看当前计算机系统中是否同时安装了多个不同版本的打印机驱动程序,或者安装了多个不同类型的打印驱动程序。在打印机的使用过程中,如果系统中的确安装了多个打印驱动程序的话,难保它们在工作时不发生冲突现象,从而导致打印机出现打印乱码故障。因此在多台打印机都安装驱动程序之后,建议先将系统中所有的打印机驱动程序全部删除干净,然后重新安装正在使用打印机的驱动程序,这样就能避免打印机在工作时受到驱动方面的冲突。  第三,检查一下当前使用的打印机驱动程序是否属于最新版本;由于打印机硬件性能的更新速度没有软件快,为了确保打印机各方面的性能都能保持稳定,及时将打印机驱动程序更新到最新版本是很有必要。要想查看当前打印机驱动程序的版本时,只要先打开系统的属性窗口,然后单击其中的“设备管理器”按钮,从弹出的系统列表中,用鼠标右键单击目标打印机对应的图标选项,从弹出的右键菜单中执行“属性”命令,进入到打印机属性设置窗口;单击该窗口中的“驱动程序”标签,然后在对应的标签页面中,大家就能知道当前的打印驱动程序是什么版本了。一旦发现该版本比较旧时,可以直接从网上下载得到最新版本的打印机驱动程序,然后通过“驱动程序”标签页面中的“更新驱动程序”功能来完成打印机驱动程序的升级操作。此外,还有一点需要提示的是,那就是在安装打印机驱动程序之前,一定要检查手头的驱动程序是否能适用于打印机所在的Windows操作系统,例如你的打印机要是连接在Windows98系统中,而你安装的却是适用于Windows2000的打印驱动程序时,那么打印机也很容易出现乱码故障。  需要提醒的是,由于Windows操作系统自身就内置了许多型号的打印机驱动程序,因此一旦打印机连接到Windows系统中后,它就会自动识别到打印机并自动把系统内置的驱动程序安装好;然而系统的默认驱动程序一般都比较旧,无法让打印机工作在最稳定的状态,因此在安装打印驱动程序时,最好不要选择自动搜索打印程序,而应该通过打印机安装向导中的“从磁盘安装”功能,来将原装的打印驱动文件导入到系统中。打印服务重启引发的乱码故障处理  这种方法一般适用于打印机长时间工作之后继续打印时出现的乱码故障,由于长时间工作后打印机的缓存中保存了不少垃圾任务,这些任务如果超过一定的数值,就会导致打印机反应迟钝或者反应出错,从而有可能引发打印乱码故障。遇到由这种因素造成的乱码故障时,我们只要将打印机电源关闭一段时间,之后重新启动打印机,这样就能让将打印缓存中的内容全部清除了。但是,如果打印机安装在Windows2000或2000以上版本的操作系统中时,单纯依靠切断打印电源的方法是无法将打印缓存中的内容彻底清除干净的,因为Windows2000以上的系统会在打印机电源被切断的一刹那,自动将打印缓存中的内容全部转存到计算机硬盘缓存中,以后打印机重新启动时,存储在硬盘缓存中的垃圾内容又会自动恢复原位,这样的话打印乱码故障仍然还有可能出现。为此,在Windows2000以上版本的计算机系统中,我们需要采取打印服务重启法,才能将由缓存引起的乱码故障彻底解决掉:  首先打开系统的运行对话框,在其中执行“Services.msc”字符串命令,进入到系统服务列表窗口中;从该列表中找到“printspooler”选项,并用鼠标右键单击之,从弹出的快捷菜单中单击“属性”选项,打开对应该服务的参数设置窗口;  单击一下该窗口中的“停止”按钮,然后单击“确定”按钮,此时再将打印机的电源切断,这样的话Windows系统就不会把当前打印缓存中的垃圾内容临时转存到硬盘缓存中了;  为了防止以前缓存在硬盘中的临时作业又恢复到打印缓存中,我们还需要打开系统的资源管理器窗口,依次双击其中的“system32”、“spool”、“printers”系统文件夹图标,然后在“printers”子文件夹窗口中将所有临时打印作业全部删除干净,这样一来打印机再次接通电源时就不会遇到垃圾缓存复位的问题了;  下面,为了确保打印机以后能够正常工作,我们还需要再次进入到系统服务列表窗口,并双击“printspooler”服务选项,打开它的属性设置窗口,再单击其中的“启动”按钮,将打印机的后台打印服务启动起来,以后打印机重新工作时,就不会受到垃圾缓存的干扰了。  小提示:为了避免产生太多的垃圾缓存,大家在向打印机发送打印文档时,要保持一定的时间间隔,不要在很短的时间内就向打印机发送很多个打印文档,否则的话缓存容量较小的打印机很容易出现乱码故障。打印位置调整引发的乱码故障处理  如果打印机摆放在不合适的位置,或者工作在不合适的环境中时,那么打印机在工作时传输的信号很容易受到周围环境的干扰,从而有可能产生打印乱码故障;例如,一旦打印机靠近配电柜放置,或者靠近磁性很强的东西时,那么打印机工作时产生的传输信号在信号线缆上传输时,就特别容易受到周围环境中的强磁场或强电场干扰,如果打印机使用的信号线缆没有较强信号屏蔽功能的话,那么最终打印出来的内容很有可能都变成了乱码。为了避免由外界干扰造成的打印乱码故障,我们一定要将打印机摆放在理想的位置,这个位置一定要远离高压线、配电柜,要与其他电子设备保持适当的距离;另外为了增强打印机自身的抗干扰能力,笔者建议大家不要使用自己定做的打印信号线,而应该使用原配打印线缆,毕竟原配线缆在抗外界干扰方面具有一定的优势。  如果怀疑打印机线缆连接有问题的话,不妨将系统切换到MS-DOS工作模式,然后在DOS命令行中执行“dir>prn”字符串命令,来测试一下打印机打印出来的内容是否正常,如果在这种情况下打印机仍然还会出现乱码的话,那多半是打印机线缆连接遇到了故障。另外,要是打印机的接口上安装了加密狗的话,也很容易导致打印乱码故障,此时不妨将加密狗暂时移除看看。打印操作规范引发的乱码故障  有许多打印故障都是由人为不规范操作引起的,比方说不对打印机进行定期维护清洁,在打印机工作时不按规定随意带电拔除打印线缆,往打印机中一次性输送了容量太大的文档等。要排除由操作不当造成的乱码故障时,我们也需要从操作出发,提高打印操作的规范性和正确性:  首先要学会正确连接打印机。不要小看打印机的物理连接,因为连接不当不但会导致打印机无法正常工作,而且还能烧毁打印机的一些接口;例如有的朋友为了图方便,往往在打印机接通电源的情况下就直接插拔打印信号线,这样的话计算机主板中的打印端口或者打印信号线的接头很容易被脉冲电流烧毁或出现假死现象,从而导致打印信号无法被准确识别,甚至不能被识别。所以在连接打印机时,一定要在断开电源的情况下进行,而且在进行物理连接时,一定要将线缆理顺并放置在他人不易碰到的地方,此外还要轻拿轻放,不要用蛮力强拉硬扯,否则很容易导致信号线缆接头部位处的电路发生虚焊故障,从而导致打印信号传输出错。   其次要将各个连接接头牢靠固定好。由于打印线缆自身有一定的重量,如果线缆被悬空放置时,其自身重量很容易导致打印接头从端口中滑落,或者导致接触不良,从而引起打印信号传输出错;因此大家一定要养成拧紧接头螺丝的习惯,同时不要将连接线缆悬空放置,也不要将线缆穿过门窗或其他缝隙,以免连接线缆受到挤压。  接着要学会正确进行文档打印。也许有人说打印文档还不简单,只要在文档编辑界面中单击“打印”命令就可以了,剩下的工作全交给打印机就得了;其实文档打印还是有学问可循的,例如在低配置系统中打印材料时,一定要逐份逐份地向打印机发送材料,否则打印机就很容易出现故障;遇到某个文档信息量很大时,最好将它拆分成几个子文档进行打印,这样不但能提高打印速度,也能避免出现打印故障;即使在高配置系统中打印材料时,也不能同时向打印机发送多个任务,否则也容易出现乱码故障。  最后大家要注意的是最好能将打印机接到UPS稳压电源中,因为打印机的工作电压要是波动幅度太大的话,其存储打印字库的工作芯片在脉冲电压的冲击下很容易受到破坏,如此一来文档中的许多字符就无法被正确打印出来了。所以,将打印机连接到稳压电源中,也是避免打印乱码故障发生的有效途径之一。打印参数设置引发的乱码故障  如果打印机的属性参数设置不当的话,那么打印乱码故障有时也会发生。例如,对于比较旧的打印机来说,如果大家将它们的端口工作模式设置为EPP的话,就很容易出现乱码故障;如果将打印机所在的计算机系统字库不小心删除掉,也能影响打印机的正常输出。另外,要是在打印机属性设置框中进行了不合理设置的话,不但会造成打印乱码故障,甚至还能导致打印机无法工作。为此,对打印参数进行合理设置十分重要:  首先在设置打印机的端口工作模式时,要注意将旧打印机的端口模式设置为“SPP”,对于一些主流的并口打印机来说,可以尝试着将打印端口模式设置为“ECP+EPP”,如果大家使用的是USB接口的打印机时,可以暂时禁用打印机并行端口。  其次确认一下打印机所在的计算机系统字库文件是否受到了意外删除,要是一些特殊字体已经被不小心删除或者还没有安装的话,大家不妨进入到系统的控制面板窗口,然后双击其中的字体图标,在其后出现的窗口中单击“文件”菜单项,并从弹出的下拉菜单中单击“安装新字体”命令,来将需要的字体重新安装好就可以了。病毒木马清除引发的乱码故障  如果一切操作都很正常,但打印机仍然还会打印出乱码来的话,则需要检查一下当前计算机中是否有病毒。病毒的出现能导致各种稀奇古怪的故障出现。所以,在无法排除打印乱码故障时,不妨考虑对计算机系统查杀一下病毒来解决打印乱码的故障。  关于打印乱码的故障解决方式,基本就是以上几点。对于这些故障的处理,大家需要逐步诊断原因并解决,而不可贸然处理,避免出现的不必要的故障。

板机通信

 1 /*********************************
 2 代码功能:板机通信
 3 使用函数:
 4     Serial.available();                //判断串口是否接收到数据
 5     Serial.print(字符串);            //通过TX传出去
 6     Serial.write(字符串);            //写入串口中
 7     Serial.println(字符串);            //通过TX传出去,并在尾端加换行
 8 函数补充:
 9     Serial.print(thisByte);            //打印文字
10     Serial.print(thisByte,HEX);        //打印十六进制数
11     Serial.print(thisByte,OCT);        //打印八进制数
12     Serial.print(thisByte,BIN);        //打印二进制数
13 创作时间:2016*10*08
14 作者邮箱:[email protected]
15 ********************************/
16 char inByte = 0;
17 void setup()
18 {
19     Serial.begin(9600);            //串口波特率
20 }
21 void loop()
22 {
23     if(Serial.available()>0)
24     {
25         inByte = Serial.read();
26         Serial.print("[");
27         Serial.write(inByte);
28         Serial.println("]");
29     }
30 }

 

以上是关于Arduino 的 Serial.write 和 Serial.print 的区别在哪里的主要内容,如果未能解决你的问题,请参考以下文章

Arduino 无法正确读取 Serial

arduino(esp32c3) uart通信问题 Serial.write发送到哪了?

如何在Arduino上传输字符串?

怎么把arduino接收数据清除掉

python里 serial.write()输出到另一端时是啥格式的 比如说我用ser

Arduino ESP32 BLE蓝牙串口通讯实验