串口打印机不能打印或打印乱码

合集下载

常见打印乱码解决方法

常见打印乱码解决方法

常见打印乱码解决方法1.打印过程中红灯亮 (bsc-2498/3498)原因:打印机的感应器没感应到纸或没感应到色带,需让机器重新测纸。

解决方法:先把打印机电源关掉,按住打印机上的PAUSE键,然后开机,等打印机出纸后在松开手,看打印机是否有回缩的动作,如果没有,在重复按上面的方法试多几次,直到打印机出现回缩动作为止。

如果这样反复试过还不行,可以先初始化机器即先关机,然后同时按住PAUSE和FEED两个键,直到打印机上的三个显示灯同时闪过一遍后在松手,然后在按开始的方法检测下纸,直到有回缩动作出现为止。

2.打印过程中出现跳纸现象原因:这种现象还是属于机器没能检测到纸的原因或是纸张做的不标准。

解决方法:先看看是否标签纸做的不标准,各个标签的大小是否一致,如是这个原因造成的,那只能更换标签纸。

如检测到标签没问题,那么就是属于机器没能检测到纸,需重新测纸。

先把机器关了,然后同时按住PAUSE和FEED两个键再开机,直到三个显示灯同时闪过一次在松手来进行机器初始化,然后再关机,按住PAUSE键进行测纸,等到机器出纸后再松手,直到机器出现回缩动作以后再开始打印。

3.打印过程中打印机响声很大,并且打印机的盖很难盖上去。

原因:色带卷轴装反了。

解决方法:检查下色带卷轴是否装反,然后进行正确安装。

4.打印过程中走纸正常,但打印是打印不出东西。

原因:色带装反。

解决方法:看色带是属于内碳还是外碳,然后在按说明书上的安装方法进行正确安装。

5.打印过程中打印正常,但色带回卷轴不回卷。

原因:这由于操作员在没安装色带的情况下就已开机,引致打印机没能检测到色带,默认为热敏打印。

解决方法:先关掉打印机,正确安装好色带和标签纸后在开机,打印机恢复正常。

如不行再进行机器初始化。

6.打印过程中机器正常走纸,但打印时只打印一半内容或出现乱码原因:软件的打印程序出错。

解决方法:重启打印程序,重新建立一张新标签,并重新对标签上的内容进行排版,选择正确的打印驱动进行打印看是否正常。

打印机打印出现乱码

打印机打印出现乱码

打印机为何打印乱码?打印乱码后如何解决?一、问题描述其实不光是针式打印机,喷墨、激光打印机都会出现打印内容为乱码的现象,虽然打印机类型和工作原理不同,但是产生这个问题的原因大致是相同的。

本文以LQ630K, LQ1600K3+,LQ670K+T 三款针式打印机为例解释乱码现象产生的原因和解决方法。

二、问题原因,现象,和解决方法纵观EPSON系列针式打印机,打印乱码主要有5个原因,按其发生频率所占的比例由大到小,分述如下:1 电脑操作系统问题,打印机缓冲区溢出问题。

很多人以为电脑是不会出错的,其实我们的操作系统并不像想像的那么稳定。

我们向电脑提交的打印作业有时会在打印管理程序中被堆积起来。

电脑处理不过来,会向打印机发送一些混乱的数据,在window2000和windowsXP系统中有时甚至重启电脑或者打印机后问题依然存在。

典型表现是:打印机突然打印几行乱码,然后就不工作了。

解决方法:win98下比较简单,win2000和winXP有时会复杂一些。

发送打印作业后,在电脑右下角会冒出来一个打印机的小图标,双击一下,打印管理器就出现了。

我们可以在这个管理器中控制打印作业的暂停、重启或者清除。

在win98操作系统中,一般只需要取消所有打印作业,重启打印机一般都可以解决。

如图一:图一:在win98系统中删除打印作业我们有时会发现在win2000和winXP操作系统下,有时问题会很"固执"。

这时候就需要我们多做一些工作。

首先也应该象在win98下那样,尝试这取消堆积的打印作业,或者再重新启动一下打印机。

如果情况不是很严重,可以解决问题。

如图二:图二:在windows2000和windowsXP系统下,清除已经发送的打印文档。

与win98的打印管理器相比,只是界面略有不同,位置和功能是相同的。

针对于普通的使用者来说,有时重启系统(电脑、打印机)是最简单的解决问题的方法。

因为在系统重启的过程中会自动执行初始化各子系统,清除内存等一系列操作。

佳博针式打印机常见问题及解决办法

佳博针式打印机常见问题及解决办法

16. 打印机不小心进水了,该如何处理?
答:应立即关闭电源,可用电吹风,将主板和机芯等各部件吹干,注意温度不可过高,正常使用温度为50℃左右。
13. 如何安装网络共享打印机的驱动程序?
答:进入网上邻居,在有共享打印机的计算机上找到所共享的打印机,双击该打印机安装驱动程序到本地打印即可。
14. GP-7646Ⅲ以太网接口打印多台机同时使用,有时通讯中断不能打印,如何排除故障?
答:请首先检查打印机联接网络是否稳定, 再将每台打印机开机自检, 检查打印机Ethernet ID 是否有重复冲突,如有重复冲突, 请用打印机随机附光盘中的 Ethernet 接口打印机工具更改 Ethernet ID号,使每台打印机Ethernet ID号变为唯一。
佳博针式打印机常见问题及解决办法
1. 串口打印机联机会打印乱码吗?
答: PC主机所设置的波持率与打印机一致不会打印乱码.
2. 针式打印机自检打印乱码或红灯闪?
答:如打印机装有色带,打印异常则可能是色带太紧,请更换色带;
3. 打印机不开钱箱?
答:请检查打印机钱箱联接钱箱接口是否规范, 若符合且钱箱联接正确, 请送指定维修点维修。
15. 卡纸或检测到纸,但不能进纸?
答:进纸口有纸屑卡住,可如下操作清理:SMP2000II机芯:用螺丝刀把进纸口旁塑料支架内的两颗螺丝扭开, 小心地把塑料支架取出,用镊子清理纸屑; DP330机芯: 用螺丝刀把进纸口支 架上的 两颗螺丝扭开, 小心取下铁片支架, 用镊子清理纸屑; M-U110II机芯: 可直接按打印挡板上箭 头方向把塑料支架小心取出,用镊子清理纸屑。
7. 针式打印如何使用黑标定位?
答:将打印机(底部)DIP开关SW-1位设为ON,打印纸黑标位于打印纸正面右侧(可选黑标位于打印纸正面左侧)

C#操作串口打印机(汉字乱码问题)

C#操作串口打印机(汉字乱码问题)

C#操作串⼝打印机(汉字乱码问题)
C#通过串⼝发送汉字时经常会有乱码出现,出现的原因是串⼝字符集和打印机的字符集不相符
解决办法将串⼝的字符集与打印机的字符集设置为相同,⽐如:我现在有⼀个GB2312字符集的打印机打印前,找到打印机的说明书找到打印命令代码表,找到初始化打印机指令和进⼊汉字打印⽅式的指令代码,⽐如:初始化打印机指令为 00 00 进⼊汉字打印指令为 0A 0C
SerialPort ports = new SerialPort();
ports.PortName = "COM2";//根据个⼈计算机设定串⼝名称
ports.BaudRate = 9600;
ports.Open();
byte[] byt=new byte[]{0x00,0x00,0x0A,0x0A};
ports.write(byt,0,byt.length);//初始化打印机并且进⼊汉字打印模式
string str="打印机测试";
ports.Encoding = System.Text.Encoding.GetEncoding("GB2312");// 将打印机的字符集设置为端⼝的字符集
ports.WriteLine(str);
OK了,可以实现简单的打印了。

打印机打印乱码的解决方法

打印机打印乱码的解决方法

打印机打印乱码的解决方法打印机是我们日常办公和生活中常见的设备,然而有时候会出现打印乱码的情况,给我们的工作和生活带来一定的困扰。

那么如何解决打印机打印乱码的问题呢?下面将为大家介绍几种常见的解决方法。

1. 检查打印机设置我们需要检查打印机的设置。

打开打印机属性,确保选择了正确的打印机,并且设置了正确的纸张尺寸和打印方向。

有时候乱码是由于设置错误导致的。

2. 更新打印机驱动程序打印机驱动程序是连接操作系统和打印机的重要桥梁,如果驱动程序过时或损坏,就会导致打印乱码的问题。

我们可以通过访问打印机制造商的官方网站,下载最新的驱动程序,然后安装更新。

3. 检查打印机连接打印机连接不稳定也会导致打印乱码。

我们可以检查打印机与电脑之间的连接是否松动或损坏,如果有问题,可以重新连接或更换连接线。

4. 清洁打印头打印头是打印机的核心部件,如果打印头脏了或堵塞了,就会影响打印质量,甚至出现乱码。

我们可以使用专门的清洁剂或是软布蘸取少量清水,轻轻擦拭打印头,去除污垢和堵塞。

5. 更换墨盒或墨粉打印机墨盒或墨粉的质量也会影响打印效果。

如果墨盒或墨粉已经接近用尽,就可能导致打印乱码。

这时候我们可以更换新的墨盒或墨粉,确保打印质量。

6. 调整打印机设置有时候,乱码是由于打印机的调整设置不当导致的。

我们可以尝试调整打印机的打印质量设置,如打印分辨率、打印速度等,看看是否能够改善打印效果。

7. 检查文件格式有时候,乱码是由于文件格式不兼容导致的。

我们可以尝试将文件另存为其他格式,然后再进行打印,看看是否能够解决问题。

8. 使用专业的打印软件有些打印软件具有更多的打印设置选项,可以帮助我们更好地调整打印效果。

如果我们经常遇到打印乱码的问题,可以考虑使用这些专业的打印软件来进行打印。

总结起来,解决打印机打印乱码的问题,我们可以从检查打印机设置、更新打印机驱动程序、检查打印机连接、清洁打印头、更换墨盒或墨粉、调整打印机设置、检查文件格式以及使用专业的打印软件等方面入手。

单片机与电脑串口通信显示乱码的问题解决方法

单片机与电脑串口通信显示乱码的问题解决方法

单片机与电脑串口通信显示乱码的问题解决方法用51开发板,测试串口通信程序时,在串口通信助手,返回的字符显示乱码,如以下程序,如果用红色标注的部分,串口通信的内容就会显示乱码,主要原因是开发板用的12M 的晶振,12M的晶振在波特率为9600比特的情况先,通信就会显示乱码,4800比特,并且波特率加倍就不会显示乱码,本人实践得出的结论,以下程序可以下载下来试试:#include <reg52.h>void ConfigUART(unsigned int baud);void main (){ConfigUART(9600); //配置波特率为9600while(1);}void ConfigUART(unsigned int baud) //串口配置函数,baud 为波特率{ /*SCON = 0x50; //配置串口为模式1TMOD &= 0x0F; //清零T1 的控制位TMOD |= 0x20; //配置T1 为模式2TH1 = 256 - (12000000/12/32) / baud; //计算T1 重载值FDTL1 = TH1; //初值等于重载值ET1 = 0; //禁止T1 中断TR1 = 1; //启动T1ES = 1; //打开串口中断EA = 1; //打开总中断*/SCON=0X50; //设置串口为工作方式1TMOD|=0X20; //设置计数器T1工作方式2PCON=0X80; //波特率加倍TH1=0XF3; //计数器初始值设置,晶振12M,注意波特率是4800的TL1=0XF3;ES=1; //打开接收中断EA=1; //打开总中断TR1=1; //打开计数器}void InterruptUART() interrupt 4{if (RI) //接收到字节{RI = 0; //手动清零接收中断标志位SBUF = SBUF+1;//接收数据+1 发回去,左边为发送SBUF,右边为接收SBUF。

串口打印机不能打印或打印乱码

串口打印机不能打印或打印乱码

为何通过串口不能打印或打印乱码?一、硬件准备首先确保你的硬件满足以下条件,并且使用的串口线是XPrinter指定代理或经销商提供的标准线缆。

打印机:请先确认你的打印机端确实是串口,XPrinter的热敏系列打印机串口为25针D型接口或9针D型接口计算机:计算机必须具有串口,如没有串口可使用PCI串口扩展卡(如使用串口扩展卡,要注意多数都是3线制通讯,只能选XON/XOFF握手协议)。

由于USB转串口设备的不稳定性,不建议使用此类转换器。

打印电缆:串行口打印电缆,下列图表说明了XPrinter打印机串口电缆的配置情况。

计算机端(25针D型)---打印机端(25针D型)计算机端(9针) -----------打印机端(25针)PC XPrinterRXD 2 ---------------------- 2 TXDTXD 3 ---------------------- 3 RXDGND 5 ---------------------- 7 GNDDSR 6 ---------------------- 20 DTRCTS 8 ---------------------- 4 RTS注意:Modem使用的串口电缆无法用于PC机和XPrinter打印机的串口打印。

二、配置2.1首先检查打印机当前的串口设置。

方法:首先关闭打印机电源,然后按住面板上的"FEED"键不放,再将打印机打开,等二到三秒就松了按键,此时打印机会打印出当前的串口设置。

2.2根据上图的端口设置,(波特率:19200、数据位:8、奇偶校验:无、停止位:1),在WINDOWS系统的端口属性中输入相同的端口配置(如下图),确认后就可正常打印了。

方法:打开打印机属性→端口→选择COM1→配置端口。

打印机不能正常打印的故障原因,排除方法

打印机不能正常打印的故障原因,排除方法

打印机不能正常打印的故障原因,排除方法说实话打印机不能正常打印这事儿,我一开始也是瞎摸索。

我家那打印机时不时就出幺蛾子,不打印了,把我急得不行。

我先想到的是墨盒或者硒鼓的问题。

就像人吃饭一样,打印机墨盒或者硒鼓没墨了或者坏了,肯定干活儿就不利索啊。

所以我第一个就去检查墨盒或者硒鼓。

有时候墨盒安装得不对,就像鞋子穿反了一样别扭,肯定不行。

我之前就有一次没把墨盒卡紧,打印机就罢工了。

后来把墨盒拿出来重新小心翼翼地安装好,确保听到咔哒一声,就像扣上安全带一样扣紧,这时候打印机就能正常工作了。

要是墨盒没墨了,那就更明显了,打印出来的东西要么颜色浅得不行,要么就是空白一片。

硒鼓也同理,要是硒鼓老化或者有损坏,打印出来的纸张经常会有黑斑、模糊或者不清楚的地方。

我还试过网络连接的问题。

现在有的打印机是连着网络的,如果网络不好,打印机就像断了线的风筝飞不了。

有一次我在家办公,用无线网络连接打印机,结果打印机一点反应都没有。

我检查了半天,发现原来是路由器出了小故障,网络信号特别弱。

我重启了路由器之后,打印机就又能欢快地工作了。

打印队列也很容易出问题。

就好比高速公路上塞车了,车辆走不动。

有时候电脑给打印机发送了好多打印任务,结果卡住了。

我尝试过把打印队列里的任务全部取消,就好像给塞车的公路清空了一样。

在电脑的设置里找到打印机选项,然后把里面排队的所有任务都删掉,再重新发送打印任务,或许就可以了。

打印机的设置有时候也会出错。

比如说纸张大小设置跟你实际放进打印机的纸张不一致,这就好比你给要穿36码鞋的脚准备了38码的鞋,肯定不合适。

你得确保在打印的时候,设置里选择的纸张大小、类型和你放在打印机里的纸张一模一样。

我之前就老忽略这一点,印出来的东西格式老是乱的。

还有硬件连接方面,打印机的电源线和数据线可不能马虎。

电源线没插好那打印机就像人没了电一样动不了。

数据线要是有损坏或者没有插紧,那信息就不能正常传递。

有一回打印机没反应,检查来检查去最后发现是数据线松了,插紧之后就没问题了。

打印机无法打印的原因及解决办法

打印机无法打印的原因及解决办法

打印机无法打印的原因及解决办法打印机主要的作用是打印,如果它不能够打印的话,也就失去了它存在的意义。

在工作的时候经常需要打印纸张的时候,如果遇到了打印机无法打印的情况,也会给工作带来许多的麻烦,小编下面给大家找了打印机无法打印的原因及解决办法。

一、打印机无法打印的原因及解决办法1、打印机没有处于联机状态导致打印机无法打印在大多数打印机上,“OnLine”按钮旁边都有一个指示联机状态的小灯,正常情况该联机指示灯应处于常亮状态。

如果该指示灯不亮或处于闪烁状态,说明它的联机是不正常的。

请检查打印机电源是否接通、打印机电源开关是否打开、打印机电缆是否正确连接等。

2、打印机处于暂停打印状态导致无法打印方法是:在“打印机”窗口,右键单击在用的打印机图标,然后单击以清除“暂停打印”选项前的对号“√”。

3、磁盘可用空间低于10MB导致打印机不能打印如果可用硬盘空间小于10MB(一般指C盘),必须释放更多的空间才能完成打印任务。

这时,请单击“磁盘清理”按钮,然后在“要删除的文件”列表框中,选中要删除的文件类型,单击“确定”按钮。

4、程序生成的输出不正确导致无法打印要确定程序生成的输出能否正确,能够采用通过其他程序打印文档的方法验证。

我们新建记事本文件,键入几行文字,然后在“文件”菜单中,单击“打印”命令,如果能够打印测试文档,就是原来你使用进行打印的程序有问题,请重新安装程序。

5、打印机驱动程序损坏导致打印机无法打印有时打印机驱动程序可能被损坏,从而引发不能打印文档的错误。

我们能够重新安装合适的驱动程序,然后再打印。

二、打印机脱机怎么处理1、检查打印机指示灯确保开启打印机电源,并且打印机处于待机准备就绪状态。

打印机指示灯闪烁的处理方法请参考:HP LaserJet P1007、P1008 激光打印机 - 指示灯闪烁。

2、清除打印任务由于打印后台服务程序处理失败而未能够打印的任务,会停留在打印任务列表中,导致打印队列堵塞无法正常打印,打印机状态显示为“脱机”,此时需要清除堵塞的打印任务。

2440启动串口输出乱码问题

2440启动串口输出乱码问题

2440 移植2.6.30 (转)解压缩内核压缩文件后进入到目录中,然后修改Makefile,找到ARCH ?=CROSS_COMPILE ?=这两项,不修改这两项的话将会默认使用x86的配置,这里修改为ARCH ?= armCROSS_COMPILE ?= arm-linux-arm-linux- 是交叉编译器~ 这里我使用的交叉编译器为友善送的arm-linux-gcc-4.3.2.tgz,带EABI然后执行make menuconfig,然后进入System Type中看看是否为ARM体系~第一行为ARM system type 说明没错~ 然后在ARM system type中选择SamSung“S3C2410...”随后在下面出现的S3C2440 Machines中选择SMDK2440退出保存~ 执行make zImage出现ERRORdrivers/video/console/vgacon.c:510:error “PCIMEM_BASE undeclared”是在vgacon_startup中,vgacon是啥?~ 不认识~ 应该是不必要的东西~ 去掉它~vim drivers/video/console/Makefile在里面看见了这句obj-$(CONFIG_VGA_CONSOLE) += vgacon.o然后执行find ./ -name “Kconfig” | xargs grep “VGA_CONSOLE”看见config VGA_CONSOLE 在driver/video/console/Kconfig中也就是说在驱动->视频->终端中,执行make menuconfig在Device Drivers->Graphics Support->Console display driver support中发现了VGA text console去掉它,保存设置后再编译编译完成后将在arch/arm/boot中得到zImage文件使用SuperVivi的USB加载功能启动这个内核文件~ 得到下列输出zImage magic = 0x016f2818Setup linux parameters at 0x30000100linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0" MACH_TYPE = 1999NOW, Booting Linux......Uncompressing Linux........................................................................................................ done, booting the kernel.失败信息不够丰富~ 根据kasim大大的指点,在配置中进入Kernel hacking打开Kernel debugging和Kernel low-level debugging functions 还有Kernel low-level debugging messages via S3C UART保存后再编译运行zImage后得下列输出zImage magic = 0x016f2818Setup linux parameters at 0x30000100linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0" MACH_TYPE = 1999NOW, Booting Linux......Uncompressing Linux........................................................................................................ done, booting the kernel.Error: unrecognized/unsupported machine ID (r1 = 0x000007cf).Available machine support:ID (hex) NAME0000016a SMDK2440Please check your kernel config and/or bootloader.失败原来是machine的ID和Supervivi传递进来的ID不匹配~关于machine ID,可以参考一下这篇文章<2.6.18-2内核中对S3C2440的引导启动分析>虽然版本老了点,但是核心思想还是没有变vim arch/arm/mach-s3c2440/mach-smdk2440.c在最后一段有这句MACHINE_START(S3C2440 , ”SMDK2440”)这里S3C2440就是machine ID的代号~ 呢具体值是多少呢?~在arch/arm/tools/mach-types中s3c2440 ARCH_S3C2440 S3C2440 362原来我们的machine ID是362~呢bootloader传递进来的值是多少呢?~Error: unrecognized/unsupported machine ID (r1 = 0x000007cf).注意到没有?~ 0x7CF转换成10进制也就是1999修改mach-types中的对应项s3c2440 ARCH_S3C2440 S3C2440 1999虽然这样就和下面MINI2440的1999冲突了,但是只要不加入MINI2440的配置就没事修改后编译,再执行zImage后得下列输出zImage magic = 0x016f2818Setup linux parameters at 0x30000100linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0" MACH_TYPE = 1999NOW, Booting Linux......Uncompressing Linux........................................................................................................ done, booting the kernel.失败咦?~ 啥都没有?~ 最起码也应该有个乱码吧这时候我的第一反应是会不会没有跳入到start_kernel中所以马上编辑init/main.c,在start_kernel的前部加上printk(KERN_INFO “in start_kernel \n”);但是这个时候内核还没有初始化,所以printk是没有作用的~继续得到kasim大大的指点,编辑kernel/printk.c中的printk函数{va_list args;int r;#ifdef CONFIG_DEBUG_LLextern void printascii(const char *);char buff[256];#endifva_start(args, fmt);r = vprintk(fmt, args);#ifdef CONFIG_DEBUG_LLvsprintf(buff, fmt, args);#endifva_end(args);#ifdef CONFIG_DEBUG_LLprintascii(buff);#endifreturn r;}编译后执行zImage,得下列输出zImage magic = 0x016f2818Setup linux parameters at 0x30000100linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0" MACH_TYPE = 1999NOW, Booting Linux......Uncompressing Linux........................................................................................................ done, booting the kernel.<6>in start_kernel<6>Initializing cgroup subsys cpuset<6>Initializing cgroup subsys cpu<5>Linux version 2.6.30.3 (wolf@ubuntu) (gcc version 4.3.2 (Sourcery G++ Lite2008q3-72) ) #4 Wed Aug 5 16:54:49 CST 2009 ..................................................失败虽然正常输出了~ 有进入start_kernel~ 但是为什么之前每输出呢?~ 会不会是没有找到输出设备在输出中看到这行<5>Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0 console=ttySAC0 会不会是没有ttySAC0这个设备呢~ 在内核中搜索ttySAC 在driver/serial/samsung.c中得到对应项目这时候我猜想会不会没有加载samsung.c , 经过一轮Makefile和Kconfig的查询, 发现对应选项在Device Drivers->Character devices->Serial drivers中一看,原来根本就没有加载Samsung SoC serial support , 选成静态编译之后又出现了Support for console on Samsung SoC serial port ,就是它了,选上, 退出的时候顺便把Kernel low-level debugging functions给取消了否则我们设置的printk会自行输出,就不知道ttySAC有没有加载成功了编译后执行,得下列输出zImage magic = 0x016f2818Setup linux parameters at 0x30000100linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0" MACH_TYPE = 1999NOW, Booting Linux......Uncompressing Linux......................................................................................................... done, booting the kernel.w# DpñGpGp´ó70ÇC¼ØûÛ»›3ó•ó¸Û0ƒw#DpñGpGp´ó•tØ›•p¸›7¿³ó•\@û7¼¿[£¼Û3•¼ó;£¸ÀÛ;[7û;D°•D@GoGpGpíó•t›7•{ð#ßóÄ;›•770ÄÄ3Çß;GoDh}û7wœ´{…[ó7ûÛ›30°ôܸ‡#_sÄ;›•770Øijœ¼DG@ÁôÛ•ûÄ;•sÄ›£Ø›•DŽ³ÃÛ70ÄGpÁ4ßœ»ôGã›30³D˜ßF[s˜£ÀÛû70ÛD8ßÄ4G8ôGv£°ÇÃGpÍ´0ƒ†# DpñGš´;óC…[4¸F¸ÄÛtÜàGp}4GGÇ4tD@Ä38ÀGpGß ôØ Û›ŸÄÛD\Cûƒ£¸ƒ;7v›Ã30Ü›4Û´£ô¼;C3[;7ù³û770‡¸°[•4tD@Ä38ÀGpGß ´´p‡ƒ•ô¼Û7ŸtÛG»4œØ…Çpíƒw# .......................................失败但这说明ttySAC加载成功了~ 不过为什么是乱码呢?~这时候就需要对比友善的配置和我们的配置有什么不同了~打开友善送的linux-2.6.29,观察arch/arm/mach-s3c2440/mach-mini2440.c和我们的2.6.30.4下面的arch/arm/mach-s3c2440/mach-smdk2440.c有什么不同由于乱码主要是时钟问题,所以我们重点观察UART的设置和基本设置,其它什么NAND LCD 的就不看先修改smdk2440_uartcfgs[][2] = {.ulcon = 0x03,}修改s3c24xx_init_clocks(12000000);然后编译再运行,输出为zImage magic = 0x016f2818Setup linux parameters at 0x30000100linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0" MACH_TYPE = 1999NOW, Booting Linux......Uncompressing Linux......................................................................................................... done, booting the kernel.[ 0.000000] in start_kernel[ 0.000000] Initializing cgroup subsys cpuset[ 0.000000] Initializing cgroup subsys cpu ...........................最后为Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)失败终于可以正常输出了,但是根文件系统挂载失败因为板子上的根文件系统为yaffs2 这时候内核还没有这个文件系统的支持,需要我们加上去拷贝友善的送的2.6.29下的fs/yaffs2目录到我们的fs目录下然后修改观察一下友善的送的2.6.29下的fs/Kconfig 和fs/Makefile和我们的有什么不同在我们的Kconfig中的source “fs/jffs2/Kconfig” 上面加上source “fs/yaffs2/Kconfig”在Makefile中的obj-$(CONFIG_FAT_FS) += fat/ 上面加上obj-$(CONFIG_YAFFS_FS) += yaffs2/然后在配置的File systems->Miscellaneous filesystems 中选上“YAFFS2 file system support” “Autoselect yaffs2 format” “Cache short names in RAM”然后编译运行,输出如下......................Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)失败还是不行,往上看几行VFS: Cannot open root device "mtdblock2" or unknown-block(0,0)Please append a correct "root=" boot option; here are the available partitions:Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)原来是没有可用的分区这个时候就要更正我们的NAND配置了还是对照友善送的linux-2.6.29,观察arch/arm/plat-s3c24xx/common-friendly-smdk.c来修改我们的arch/arm/plat-s3c24xx/common-smdk.c主要修改smdk_default_nand_part[]{[0] = {.name = “supervivi”,.size = 0x00060000,.offset = 0,},[1] = {.name = “Kernel”,.offset = 0x00060000,.size = 0x00200000,},[2] = {.name = “root”,.offset = 0x00260000,.size = 1024*1024*1024,},[3] = {.name = “nand”,.offset = 0x00000000,.size = 1024*1024*1024,}};编译后运行,输出VFS: Cannot open root device "mtdblock2" or unknown-block(0,0)Please append a correct "root=" boot option; here are the available partitions:Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)失败还是不行,连最起码的分区都没有看见,会不会是MTD没有加载呢?~打开配置进入Device DriversMemory Technology Device ......... 前面是个M~ 说明这个模块是动态加载的,而我们编译的zImage里面只有静态模块将MTD选为静态加载,然后进入MTD配置中看看还有什么需要选的NAND Device Support 这个也是动态,选为静态加载进入NAND Device Support原来连NAND Flash support for S3C2410/S3C2440 SoC都没选,马上选为静态加载保存配置后编译运行,再运行输出如下:NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit) Scanning device for bad blocksCreating 4 MTD partitions on "NAND 128MiB 3,3V 8-bit":0x000000000000-0x000000060000 : "supervivi"0x000000060000-0x000000260000 : "Kernel"0x000000260000-0x000040260000 : "root"mtd: partition "root" extends beyond the end of device "NAND 128MiB 3,3V 8-bit" -- size truncated to 0x7da00000x000000000000-0x000040000000 : "nand"mtd: partition "nand" extends beyond the end of device "NAND 128MiB 3,3V 8-bit" -- size truncated to 0x8000000 ...............................VFS: Cannot open root device "mtdblock2" or unknown-block(0,0)Please append a correct "root=" boot option; here are the available partitions:Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)失败还是没有可用分区,虽然成功分辨了分区,但是没有加载成功,估计还是在MTD的模块选择上这时候需要对照友善的配置,经过对比,发现在友善的配置中静态编译了MTD中的下面3个模块Direct char device access to MTD devicesCommon interface to block layer for MTD …translation layers‟Caching block device access to MTD devices我们也选为静态编译保存配置后编译运行,输出如下List of all partitions:1f00 384 mtdblock0 (driver?)1f01 2048 mtdblock1 (driver?)1f02 128640 mtdblock2 (driver?)1f03 131072 mtdblock3 (driver?)No filesystem could mount root, tried: cramfsKernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)分区加载成功了,但是文件系统却不能识别,我们之前不是已经加入了yaffs2么?~回到配置中再看,原来是动态编译,并没有真正进入到内核之中,选为静态编译~保存配置后编译,输出为yaffs: dev is 32505858 name is "mtdblock2"yaffs: passed flags ""yaffs: Attempting MTD mount on 31.2, "mtdblock2"yaffs: auto selecting yaffs2yaffs_read_super: isCheckpointed 0VFS: Mounted root (yaffs filesystem) on device 31:2.Freeing init memory: 128KKernel panic - not syncing: Attempted to kill init!失败依然错误,这个时候懵了,哪里错呢~ 没办法,只能对照着友善的配置一个个大模块对着来改当改到Kernel Features的时候错误消失了,原来需要选上Use the ARM EABI to compile the kernelAllow old ABI binaries to run with thie Kernel为什么呢?~ Google了一下,原来友善的根文件系统在编译的时候也启用了EABI特性,内核和文件系统需要对上文件系统用了EABI 内核也要用EABI 内核不用EABI 也只能读取不用EABI的文件系统选上这两项之后再编译,运行,输出如下yaffs: dev is 32505858 name is "mtdblock2"yaffs: passed flags ""yaffs: Attempting MTD mount on 31.2, "mtdblock2"yaffs: auto selecting yaffs2yaffs_read_super: isCheckpointed 0VFS: Mounted root (yaffs filesystem) on device 31:2.Freeing init memory: 128Kmount: mounting none on /proc/bus/usb failed: No such file or directoryhwclock: can't open '/dev/misc/rtc': No such file or directory[01/Jan/1970:00:00:13 +0000] boa: server version Boa/0.94.13[01/Jan/1970:00:00:13 +0000] boa: server built Mar 26 2009 at 15:28:42.[01/Jan/1970:00:00:13 +0000] boa: starting server pid=845, port 80open device leds: No such file or directoryTry to bring eth0 interface up......ifconfig: SIOCGIFFLAGS: No such deviceifconfig: SIOCSIFHWADDR: No such deviceifconfig: SIOCSIFADDR: No such deviceroute: SIOCADDRT: No such processDoneifconfig: SIOCSIFADDR: No such devicePlease press Enter to activate this console.[root@FriendlyARM /]#成功了,ls后输出如下bin home lost+found proc sys vardev lib mini2440 root tmp wwwetc linuxrc opt sbin usr不过ifconfig命令没有成功,继续来配置网卡对比友善的mach-mini2440.c文件,发现我们的mach-smdk2440.c中的smdk2440_devices[]数组并没有&s3c_device_dm9k这个结构,加上,追踪发现该数据结构在arch/arm/plat-s3c24xx/devs.c中,我们的devs.c中没有该数据结构的定义,加上#include <linux/dm9000.h>static struct resource s3c_dm9k_resource[] = {[0] = {.start = S3C2410_CS4,.end = S3C2410_CS4 + 3,.flags = IORESOURCE_MEM,},[1] = {.start = S3C2410_CS4 + 4,.end = S3C2410_CS4 + 4 + 3,.flags = IORESOURCE_MEM,},[2] = {.start = IRQ_EINT7,.end = IRQ_EINT7,.flags = IORESOURCE_IRQ | IRQF_TRIGGER_RISING,},};static struct dm9000_plat_data s3c_dm9k_platdata = {.flags = DM9000_PLATF_16BITONLY,};struct platform_device s3c_device_dm9k = {.name = “dm9000”,.id = 0;.num_resources = ARRAY_SIZE(s3c_dm9k_resource),.resource = s3c_dm9k_resource,.dev = {.platform_data = &s3c_dm9k_platdata,}};EXPORT_SYMBOL(s3c_device_dm9k);编译,出错,error : s3c_device_dm9k undeclared here找不到结构?~ 打开mach-smdk2440.c看看有什么头文件比较显眼的就是<plat/s3c2410.h><plat/s3c2440.h><plat/devs.h>,我们刚才编辑的文件是devs.c呢么devs.h的可能性较高,通过搜索,这个devs.h在/arch/arm/plat-s3c/include/plat/中,打开,BINGO,里面都是devs.c的数据定义加上我们的s3c_device_dm9kextern struct platform_device s3c_device_dm9k;再编译,通过了,不过这个时候先别急,我们只添加了设备,驱动有没有静态加载呢?~ 打开配置Device Drivers->Networks device support->Ethernet(10 or 100Mbit)DM9000 support没选上,马上选为静态编译保存配置,编译后运行,输出如下Try to bring eth0 interface up......说明DM9000配置成功使用ping命令进行测试,发现丢包率高达78%是不是驱动没设置好呢?~ 比较了一下友善的driver/net/dm9000.c和2.6.30.4的dm9000.c,发现明显不同直接拷贝友善的dm9000.c和dm9000.h过来编译后运行,顺利进入终端,然后运行PING丢包改善,基本无丢包我对这次内核移植的总结是:一步步来~ 先做好终端输出再挂载好根文件系统最后才考虑其它驱动的配置到此移植就基本结束了= 3=)/ 感谢阅读。

串口接收数据乱码原因总结

串口接收数据乱码原因总结

串口接收数据乱码原因总结串口接收数据乱码原因总结1. 引言在进行串口通信时,经常会遇到串口接收数据乱码的问题。

解决这个问题需要深入了解导致串口乱码的原因。

本文将总结常见的串口接收数据乱码原因,并提供解决方案。

2. 波特率不匹配问题波特率是串口通信中非常重要的参数,它表示每秒钟传输的位数。

如果发送端和接收端的波特率不一致,会导致接收数据乱码。

解决方法是确保发送端和接收端的波特率设置一致。

3. 数据位、停止位、校验位设置错误串口通信中,数据位、停止位和校验位也是非常重要的参数。

如果设置不正确,会导致接收数据乱码。

解决方法是在发送端和接收端同时设置相同的数据位、停止位和校验位。

4. 电器干扰串口通信受到电器干扰也可能导致数据乱码。

当串口线路与高压电缆或电磁设备靠近时,会引入干扰信号,使接收到的数据产生错误。

解决方法是尽量避免串口线与高压电缆、电磁设备等干扰源靠近,使用屏蔽线或滤波电路也能有效减少干扰。

5. 数据传输过程中的传输错误数据在传输过程中可能会出现错误,例如位错误、帧错误等。

当出现传输错误时,接收到的数据可能会出现乱码。

解决方法是在数据传输过程中使用校验和或CRC等校验方式,来检测和纠正传输错误。

6. 接收端缓冲区溢出当接收端的缓冲区容量无法满足高速数据传输时,会导致缓冲区溢出,进而导致接收数据乱码。

解决方法是增大接收端缓冲区的容量,或者采用流控制技术,控制数据的发送速率,以避免缓冲区溢出。

7. 其他因素除了以上几个常见原因外,还有一些其他因素可能导致串口接收数据乱码,例如硬件故障、软件问题等。

针对这些问题,需要进行更详细的故障排查和调试。

8. 总结串口接收数据乱码是串口通信过程中常见的问题。

解决这个问题需要从波特率、数据位、停止位、校验位等参数设置开始。

电器干扰、传输错误、缓冲区溢出等因素也可能导致乱码。

通过合理设置参数、减少干扰、增大缓冲区容量等方法,可以有效地解决串口接收数据乱码问题。

9. 观点和理解在解决串口接收数据乱码问题时,首先需要对串口通信原理有一定的了解。

RT809F编程器教程:查看串口打印信息的步骤

RT809F编程器教程:查看串口打印信息的步骤

RT809F编程器教程:查看串⼝打印信息的步骤打印信息是指机器开机运⾏程序时的状态信息,这有点类似于总线彩电、空调或电脑等设备的⾃检功能,借助RT809F编程器的串⼝打印功能可以将这些开机信息以字符的形式显⽰出来,以便实时查看机器内部程序指令的运⾏状态和运⾏进度,从⽽⽅便我们进⾏调试和检修。

归纳起来,打印信息功能的两⼤作⽤:1、查看机器程序运⾏状态,⽅便判断故障所在部位。

2、在打印信息上输⼊命令,对机器进⾏升级或调试。

有了开机打印信息,那么彩电内部CPU的程序运⾏状态就⼀⽬了然了,就可以帮助我们快速判断出主板的故障范围,尤其是在检修主板电压正常但⼆次不开机故障时,就显得特别实⽤,例如:FLASH程序异常会引起彩电⼆次不开机,DDR异常也会引起该故障,加之有些彩电有两块甚⾄4块DDR,另因有些主板⽆外挂存储器,也就不能随便取下存储器烧写,那么⼆次不开机故障究竟是由哪块引起的?这时可以通过查看开机打印信息来判断故障所在。

有些U盘不能直接升级的电视,需在打印信息上输⼊命令让电视读取U盘中程序,或利⽤打印信息输⼊命令加⽹线进⾏升级。

有时我们找不到完全⼀样的数据或主板,刷写或换主板后会出现花屏或其它问题,这时进⼊打印信息界⾯,可以修改屏参让其匹配本机。

⽤前注意:只要电视板卡输出了打印信息,RT809F编程器就能接收到。

使⽤者能否看到打印信息,关键看两点:1、确保板卡确实输出了打印信息;早期的电视主板根本没有输出打印信息,⾃然看不到打印信息;有些电视在⼯⼚模式⾥关闭了打印信息,需要打开后或刷进原⼚引导程序后,才会显⽰打印信息。

2、使⽤者设定了正确的线序和波特率,并给板卡重新加电;也就是说先设置好参数,再开机。

3、重新设定线序和波特率以后,必须给板卡断电,等电容放完电后再加电,很多新⼿栽在不知道打印信息只在加电后那段时间才有。

下⾯我们介绍⼀下使⽤RT809F编程器查看打印信息的步骤。

⽅法⼀:使⽤⾃主软件查看打印信息使⽤⾃主软件查看打印信息的参数设置:正确连接编程器与主板,点击编程器软件下⽅的参数设置,选择正确的线序类型和串⼝速率,最后保存。

打印机乱码解决办法

打印机乱码解决办法

前言:在打印机的日常使用中,有时会见到一些莫名其妙的文字。

这些文字不是我们日常常见的文字,而是一些乱七八糟的符号或者更本什么都不是,这就叫打印机打印乱码。

打印乱码的产生和多种原因相关,总的来说,比较常见的原因大致有以下九种原因。

一、驱动程序引发的乱码故障说明:在出现打印乱码的故障中,由打印机驱动程序安装错误会引起的乱码故障。

由于在打印机程序安装过程中,打印机驱动程序常常会与某些应用程序共用相同的动态链接文件,因此在对应用程序频繁执行卸载和删除操作时,打印机驱动程序也很容易受到破坏。

而在这个过程中,打印机的程序一旦少了某个驱动文件,在打印机工作的时候就容易出现打印乱码的故障。

解决办法:重装驱动二、打印服务重启引发的乱码故障说明:打印机长时间工作之后继续打印时出现的乱码故障,由于长时间工作后打印机的缓存中保存了不少垃圾任务,这些任务如果超过一定的数值,就会导致打印机反应迟钝或者反应出错,从而有可能引发打印乱码故障。

解决办法:1、将打印机暂停。

2、停止print spooler打印服务。

3、在开始运行里输入:spool ,打开弹出的PRINTERS文件夹,删除里面所有文件。

4、开启print spooler打印服务。

三、外界环境干扰引发的乱码故障说明:如果打印机工作在不合适的环境中时,那么打印机在工作时传输的信号很容易受到周围环境的干扰,从而有可能产生打印乱码故障;例如,一旦打印机靠近配电柜放置,或者靠近磁性很强的东西时,那么打印机工作时产生的传输信号在信号线缆上传输时,就特别容易受到周围环境中的强磁场或强电场干扰,从而引发打印机乱码。

解决办法:将打印机远离有磁场的电器。

四、数据线和端口导致的乱码故障说明:数据线质量太差、数据线使用过久线体老化、数据线接触不良、端口损坏等导致数据传输不正常也可能导致打印机乱码。

解决办法:更换新的数据线/重新插拔数据线/换一个端口。

五、串口连接时,波特率设置与所连接设备的波特率设备不匹配。

打印机打印出来的文件有乱码怎么解决

打印机打印出来的文件有乱码怎么解决

打印机打印出来的文件有乱码怎么解决打印机打印文件显示乱码该怎么办?使用打印机打印出现错误,打印出来的全是乱码,但是电脑中的文档显示正常,出现这种问题的原因很多,今天店铺就整理了一些解决方法分享给大家,需要的朋友可以参考下打印机打印出来的文件有乱码怎么解决1、字体缺失如果用户不小心将打印机所在的计算机系统字库删除掉,也能影响打印机的正常输出,导致乱码。

这种情况下,可打开“控制面板”,选项“字体”一项,双击字体图标,在打开的窗口中点击“文件”菜单,从弹出的下拉菜单中单击“安装新字体”命令,将需要的字体重新安装好就可以了。

2、缓冲溢出我们向电脑提交的打印任务有时会堆积起来,这些任务如果超过一定的数值或者任务过大,就会导致打印机反应迟钝或反应出错,进而有可能引发乱码故障。

遇到这类问题,可以首先尝试取消打印作业,无法解决的话,可以重启系统和打印机,再无法解决,就需要一些繁琐的操作,点击“控制面板”,选择“管理工具”中的“服务”,打开服务列表,在列表中选择“Print Spooler”服务,中止此服务。

接着在安装盘的WINNT、System32、SpoolPRINTERS 文件夹中删除所有文件,稍等片刻,再重新启动“Print Spooler”服务,重新打印,问题一般可以解决。

3、病毒作祟在打印操作正确的前提下,如果突然打印出乱码,那我们就要首先怀疑本地计算机是否感染病毒,因为病毒的发作常常是突发性乱码产生的根本原因。

这种情况下,及时用最新版本的杀毒软件,对系统进行彻底全面地查毒杀毒操作,有时候可以很快将问题解决。

4、驱动有误打印机驱动程序常常会与某些应用程序共用相同的动态链接文件,因此在对应用程序频繁执行卸载和删除操作时,打印机驱动程序也很容易受到破坏,一旦打印机少了某个驱动文件,那么它工作起来出现打印乱码的现象也就不可避免了。

此时建议重新安装最新的相应打印机的驱动程序,驱动安装完成后执行打印测试页,测试打印机是否工作正常。

串口助手输出乱码或无输出问题

串口助手输出乱码或无输出问题

串⼝助⼿输出乱码或⽆输出问题
问题描述:使⽤stm32的板⼦下载好程序之后,想通过串⼝助⼿查看调试结果却发现串⼝没有输出或者输出的是乱码。

情景⼀:如果你想要使⽤c标准中的printf函数打印字符到串⼝助⼿,那么你需要先重定义fputc函数,这样才可以正常使⽤printf函数。

/******************************************************
*@brief 重定义fputc函数
*@param ch:返回的字符
*
*******************************************************/
int fputc(int ch, FILE *f)
{
USART_SendData(USART1,ch);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
return ch;
}
情景⼆:如果你的fputc函数已经重定义了,但是还是输出不了字符,那么有可能是以下问题:
问题1:keil软件中没有配置好,具体配置⽅法如下:
1、选择输出中⽂选项
2、勾选Use MicroLIB
问题2:时钟的频率没有修改正确,具体修改步骤如下
1、修改频率
2、修改频率的时候如果⽂件有没有写⼊权限,我们需要先把只读权限去掉具体操作如下:
注意⼀下,修改完频率之后,记得重新把⽂件的写权限加上,重新把⽂件的只读属性勾选上即可。

以上是我在实践中遇到的串⼝助⼿输出的问题,可能还有其他的情况我没有发现,如果朋友们有其他的问题或者有更好的解决⽅法,希望留下你们的宝贵意见。

解决针式打印机换USB口无法打印或者打印出现乱码

解决针式打印机换USB口无法打印或者打印出现乱码
问题描述:使用USB口打印时打印机发送打印请求打印机却没有反应,电脑显示文档无法打印出现错误。针式打印机使用串口打印正常使用USB口打印出现乱码。
ቤተ መጻሕፍቲ ባይዱ
一:首先使用USB口打印出现问题更新或者重装打印驱动程序;
二:如果同一台电脑上同时有USB口又有并口建议使用并口连接打印机;
三:如果电脑上只有USB口时打印出现错误,找到设备管理器--通用串行总线控制器--USB Printing Support
(打印机电源打开时才会有USB Printing Support,所以请保持打印机电源开启状态)卸载重装USB Printing
Support,如果还不能正常使用打印机再重装打印机驱动。(先重装USB Printing Support再重装打印机驱动)
以上说明使用并口可以正常打印是为证明打印机没有坏,同时也说明使用USB口不能正常打印是因为使用USB口打印时打印机与电脑之间的数据通讯有问题,当然也有可能是USB线的问题如果是线的问题比较好说换线。

51单片机串口打印乱码的解决方法(转载)

51单片机串口打印乱码的解决方法(转载)

51单⽚机串⼝打印乱码的解决⽅法(转载)我使⽤的是stc的89c52rc型号,晶振是12m。

是因为买的最⼩系统就是这个频率。

使⽤波特率位9600,将TL、TH都设置成0xfd后不管是英⽂还是中⽂的都是乱码。

问题原因12M的晶振波特率只能是2400,9600的情况下会有7.8%的误差,所以会产⽣乱码,⽽2400波特率的情况下误差是0.16%,这样就不会产⽣乱码了,TH1和TL1都设为F3(摘⾃百度)为什么51单⽚机的晶振⼀般使⽤11.0592?⽤11.0592晶振的原因是51单⽚机的定时器导致的。

⽤51单⽚机的定时器做波特率发⽣器时,如果⽤11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果⽤12Mhz晶振,则波特率都STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,不倍数时误差率8.51%,数据肯定会出错。

这也就是串⼝通信时⼤家喜欢⽤11.0592MHz晶振的原因,在波特率倍速时,最⾼可达到57600,误#include <REGX52.H>#include <stdio.H>void UartInit(void) //9600bps@12.000MHz{SCON = 0x50; //8位数据,可变波特率TMOD |= 0x20; //设定定时器1为16位⾃动重装⽅式TL1 = 0xF3; //设定定时初值TH1 = 0xF3; //设定定时初值ET1 = 0; //禁⽌定时器1中断TR1 = 1; //启动定时器1EA = 1;}void delay_ms(int ms){int j = 1000;while(--ms);while(--j);}void send_byte(unsigned char c){SBUF = c;while(!TI);TI = 0;}void send_str(unsigned char *s){while(*s != '\0'){send_byte(*s);s++;}}void main(){UartInit();while(1){send_str("hello,男孩\n");delay_ms(1000000);}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

为何通过串口不能打印或打印乱码?
一、硬件准备
首先确保你的硬件满足以下条件,并且使用的串口线是XPrinter指定代理或经销商提供的标准线缆。

打印机:请先确认你的打印机端确实是串口,XPrinter的热敏系列打印机串口为25针D型接口或9针D型接口
计算机:计算机必须具有串口,如没有串口可使用PCI串口扩展卡(如使用串口扩展卡,要注意多数都是3线制通讯,只能选XON/XOFF握手协议)。

由于USB转串口设备的不稳定性,不建议使用此类转换器。

打印电缆:串行口打印电缆,下列图表说明了XPrinter打印机串口电缆的配置情况。

计算机端(25针D型)---打印机端(25针D型)
计算机端(9针) -----------打印机端(25针)
PC XPrinter
RXD 2 ---------------------- 2 TXD
TXD 3 ---------------------- 3 RXD
GND 5 ---------------------- 7 GND
DSR 6 ---------------------- 20 DTR
CTS 8 ---------------------- 4 RTS
注意:Modem使用的串口电缆无法用于PC机和XPrinter打印机的串口打印。

二、配置
2.1首先检查打印机当前的串口设置。

方法:首先关闭打印机电源,然后按住面板上的"FEED"键不放,再将打印机打开,等二到三秒就松了按键,此时打印机会打印出当前的串口设置。

2.2根据上图的端口设置,(波特率:19200、数据位:8、奇偶校验:无、停止位:1),在WINDOWS系统的端口属性中输入相同的端口配置(如下图),确认后就可正常打印了。

方法:打开打印机属性→端口→选择COM1→配置端口。

相关文档
最新文档