小票打印机乱码问题

--------------------------------------

editor:YeungChi

date:2016/3/29

describe:小票打印机乱码问题

文章内容:
一、参数解释

二、串口连接打印机设置案例

--------------------------------------

串口是一种非常通用的设备通信的协议;

一、参数解释

波特率

这是一个衡量符号传输速率的参数。它表示每秒钟传送的符号的个数。例如300波特表示每秒钟发送300个符号。当我们提到时钟周期时,我们就是指波特率,例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

波特率指数据信号对载波的调制速率,它用单位时间内载波调制状态改变次数来表示,其单位为波特(Baud)。 波特率与比特率的关系为:比特率=波特率X单个调制状态对应的二进制位数。

显然,两相调制(单个调制状态对应1个二进制位)的比特率等于波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的两倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的三倍;依次类推。

RS232是要用在近距离传输上最大距离为30M

RS485用在长距离传输最大距离1200M

数据位

这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、6、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

停止位

用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

奇偶校验位

串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位为1,这样就有3个逻辑高位。高位和低位不是真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

二、串口连接打印机设置案例

问题:小票打印机打印乱码

分析:1.数据线接触不良;

2.端口设置的波特率与小票打印机波特率不同步的问题;

解决方案:

问题1容易解决,更换数据线以及重现接好数据线即可。

针对问题2,通过查看小票打印机的说明书可以设置小票打印机的波特率;

最后通过说明书的帮助,将DIP开关中的SW-7打开(出厂设置是关闭,缺省19200)解决了打印乱码的问题;

补充:以下为度娘回答

典型表现:打印机突然打印几行乱码,然后就不工作了。  
解决方法: 针对于普通的使用者来说,有时重启系统(电脑、打印机)是最简单的解决问题的方法。

然而我们有时会发现,重新启动打印机后,打印机会奇怪地马上接着打印乱码。而这时在打印管理器中打印作业已经消失。
其实,打印作业依然存在,只不过电脑的CPU把它处理完成后就存放在了硬盘上,由硬盘直接经由内存发送到打印机。
也就是说,作业还在硬盘上。 
这时候就需要我们多做一些工作了:请点击“控制面板”--“管理工具”--“服务”。
接着打开服务列表,在Windows服务列表中选择“Print Spooler”服务,并且中止此项服务。

2、数据传输问题。 
并口电缆由于虚焊或者接口电路、芯片发生故障,会使数据在传输中发生丢失,造成打印乱码,汉字打印错误等故障现象。
并口线缆切记不要带电插拔,否则管脚容易短路,接口芯片容易被浪涌电流烧毁。千万不要存在侥幸心理。 
典型现象:有时我们会觉得奇怪,发送的打印作业后一切正常,打印机开始工作呼呼啦啦从头打印到尾,看起来也很正常。
但是打印出来的东西却乱七八糟,乱码、错位、缺失等现象纷纷呈现。 
解决方法:首先让打印机做一下自检(产品请参见操作手册),如果自检页完全正常,
而您确认您的电脑没有问题(没有病毒,用其他软件打印都是同样的现象,
甚至在“开始”-“设置”-“打印机”-选择型号-右击鼠标-常规下“打印测试页”也是如此),
我们就要考虑数据传输问题了。也就是两个端口(电脑和打印机的接口电路)一根线(并口、串口、USB线缆)。
找一根可靠的替换线缆是最简单有效的了。如果是端口问题就比较麻烦.
3、打印机硬件故障造成处理数据错误。 
打印机的字库rom,芯片等部件损坏。除去使用年头长,机器自然老化之外,造成打印机硬件损坏的原因最主要是工作环境不好。 
在Epson打印机的说明书上有明确的对使用环境的说明,但是使用者真正认真阅读并且遵从的很少。经常有用户表示自己的打印机工作环境非常好,
但是维修人员打开打印机后却发现里面的东西简直可以开个杂货铺。 在温差变化大,湿度大,电压不稳定,电源没有良好接地的工作场合,
尤其会造成打印机的损坏。 典型故障:打印乱码或者其他故障现象出现之后,我们可以尝试做打印机的自检。
如果出现自检页也是乱码,或者西文、数字正常,单单中文没有,再或者根本不工作的情况,都属于打印机本身硬件故障。 
解决方法:请尽快联系Epson的维修站。维修人员会认真具体地检测您的打印机。
4、软件仿真模式和打印机驱动程序不匹配。Epson的针式打印机一般还可以模拟一些其他厂家的打印机来工作。
比如模拟OKI的和IBM的。此时就相当于一台OKI的或者IBM的打印机在工作,这时我们当然要安装相应的OKI或者IBM的打印机驱动程序。 
经常有使用者在打印机Firmware中选择的当前仿真为OKI或者IBM,但是在电脑上安装的是Epson打印机的驱动程序。结果理所当然打印会出现乱码等现象。
5、串口连接时,波特率设置与所连接设备的波特率设备不匹配。  
安装有串口卡的打印机(产品请参见操作手册),出厂时一般都把波特率设置为9600,这和电脑串口的默认波特率值相同。
但是很多用串口连接打印机的工控设备,计量仪器,由于强调稳定性而不要求传输速度,串口波特率基本都默认设置为1200等低值。
这样如果不做调整就开始联机打印,打印会出现乱码。  
另外:有时即便打印机和电脑的串口设置的波特率相同,
仍然可能因为处理速度不匹配(当然是电脑快打印机慢),使得打印机缓冲区溢出,打印机CPU响应不及时,也会造成打印乱码或者其他问题。
这时也需要我们手动地把打印机和电脑的串口波特率都同时降低。比如同时从9600降低到4800。
但电脑和打印机的波特率必须相同,这一点无论何时都要遵守。  
请注意:在有的把串口卡作为选件的打印机产品中,串口卡安装之前,缺省设置列表中是没有波特率这一项的。
安装串口卡后会自动生成出该项。另有一些打印机的串口卡上有设置波特率的硬跳线。就可以直接用跳线更改波特率了。  
解决方法:打印机的缺省设置表中或者跳线的位置显示了当前串口设置的波特率值。  
对于那些需要在缺省设置中用打印机面板的按键来更改波特率的串口卡,需要我们打印出缺省设置页,按照上面的提示改变串口波特率,
可以按照提示步骤一步步改变打印机的波特率至和设备串口波特率值相同。 
对于那些使用硬跳线来更改波特率的串口卡,可以请参阅串口卡的使用手册上的波特率对照表来修改。

时间: 2024-10-13 16:08:30

小票打印机乱码问题的相关文章

串口小票打印机打印乱码问题

-------------------------------------- editor:YeungChi date:2016/3/29 describe:小票打印机乱码问题 文章内容:一.参数解释 二.串口连接打印机设置案例 -------------------------------------- 串口是一种非常通用的设备通信的协议: 一.参数解释 波特率 这是一个衡量符号传输速率的参数.它表示每秒钟传送的符号的个数.例如300波特表示每秒钟发送300个符号.当我们提到时钟周期时,我们就

常见小票打印机打印故障及解决方法汇总视频教程

通过对"常见小票打印机故障及解决方法汇总视频教程"课程学习,达到以下目的:1.可以独立自主安装打印机驱动以及安装打印机硬件设备 2.可以独立自主排除常见打印机故障学习教程 常见小票打印机故障:[小票打印机不打印故障]1.电脑系统参数设置不正确导致小票打印机不打印故障2.端口不正确导致不打印故障3.属性参数不正确导致不打印故障4.红灯一直闪烁不打印故障5.打印机图标突然消失不打印故障6.默认打印机不正确不打印故障 [虽然打印,但是打印不正常]1.虽然打印,但是打印的字挤压在一起,显示不正

.net 调用小票打印机 打印票据

public class PrintInvoice     { #region 01.获得打印机1获得吧台打印机2获得后厨打印机 /// <summary> /// 获得打印机1获得吧台打印机2获得后厨打印机 /// </summary> public TcpClient GetPrint(int n = 1) { var client = new System.Net.Sockets.TcpClient(); var bll = new PrintAndPlaceBll(); v

转:C#并口热敏小票打印机打印位图

最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: [html] view plaincopy class LptControl { private string LptStr = "lpt1"; public LptControl(string l_LPT_Str) { LptStr = l_LPT_Str; } [StructLayout(LayoutKind.Sequential)] pr

C# 热敏打印机 小票打印机 打印图片

using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; namespace POSPrinter { /// <summary> /// POSPrinter的摘要说明. /// 此类处理网络打印,使用了IP端口. /// </summary&

C#并口热敏小票打印机打印位图包括芯片的写入

下面是打印所需要调用的代码: class LptControl { private string LptStr = "lpt1"; public LptControl(string l_LPT_Str) { LptStr = l_LPT_Str; } [StructLayout(LayoutKind.Sequential)] private struct OVERLAPPED { int Internal; int InternalHigh; int Offset; int OffSe

365小票打印机打印接口开发文档

API开发文档 接口1:打印内容 参数 说明 deviceNo 打印机编号 key 密钥 printContent 打印内容 times 固定传1 调用方式:HTTP POSTURL:http://open.printcenter.cn:8080/addOrder返回结果:JSON字符串 ----------S1小票机返回的结果有如下几种:---------- {"responseCode":0,"msg":"订单添加成功,打印完成","

某小票打印机打印接口开发文档

API开发文档 接口1:打印内容 参数 说明 deviceNo 打印机编号 key 密钥 printContent 打印内容 times 固定传1 调用方式:HTTP POSTURL:http://open.printcenter.cn:8080/addOrder返回结果:JSON字符串 ----------S1小票机返回的结果有如下几种:---------- {"responseCode":0,"msg":"订单添加成功,打印完成","

c#调用刀片小票打印机

public static bool Print(int orderId, string orderTime) { bool b = true; string cut = ((char)29).ToString() + ((char)86).ToString() + ((char)1).ToString() + ((char)49).ToString();//发送切纸指令 //byte[] byte_cut = System.Text.Encoding.Default.GetBytes(cut)