串口打印发送指令没反应
打开Demo窗体时先初始化SerialPort对象
- C# code
private SerialPort _ComPort = new SerialPort();private void InitializeObject(){ InitPortsToList(); //初始化SerialPort对象 this._ComPort.NewLine = "\r\n"; this._ComPort.RtsEnable = true; this._ComPort.DataReceived += new SerialDataReceivedEventHandler(ComPort_DataReceived);}
然后打开串口COM1
- C# code
private void btnConnect_Click(object sender, EventArgs e){ //根据当前串口对象,来判断操作 if (this._ComPort.IsOpen) { //打开时点击,则关闭串口 this._ComPort.Close(); } else { //关闭时点击,则设置好端口,波特率后打开 this._ComPort.PortName = this.cmbPort.Text; this._ComPort.BaudRate = int.Parse(this.cmbBaudrate.Text); try { this._ComPort.Open(); } catch (Exception ex) { //捕获到异常信息,创建一个新的comm对象,之前的不能用了。 this._ComPort = new SerialPort(); this._ComPort.PortName = this.cmbPort.Text; //COM1 this._ComPort.BaudRate = int.Parse(this.cmbBaudrate.Text); //9600 this._ComPort.Open(); //现实异常信息给客户。 MessageBox.Show(ex.Message); } }}
打开COM1之后,就发送要打印的内容和打印机的指令给串口
- C# code
List<byte> buffer = new List<byte>(); byte[] tmp = { 10 }; //这里的10是厂家说明书里的命令 16进制是0x0A,10进制是10,表示打印并换行 string content = this.txtContent.Text.Trim(); //这里是打印的内容 byte[] dataContent = Encoding.Default.GetBytes(content); buffer.AddRange(dataContent); buffer.AddRange(tmp); byte[] data = buffer.ToArray(); this._ComPort.Write(data, 0, data.Length); this._ComPort.Close();
最后write之后,打印机没有反应,我没接触过串口编程,不知道到底问题在哪里,请哪位朋友有碰到过类似问题的解答一下,打印机是热敏打印机
[解决办法]
串口参数都设置对了吗
[解决办法]
使用串口调试助手,发送命令查看打印机是否能够正确收到命令工作;
使用串口调试助手,发送命令后查看命令是否正确发送
[解决办法]
看看要不要驱动,装好没有
[解决办法]
我刚做了一个16进制的打印机发送打印内容的时候要发送16进制内容
每个16进制数据前面加上0x以字节组形式发送