欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 口号 > wince串口号

wince串口号

时间:2019-05-24 08:38

wince6.0下怎么查看串口号

初始化代码: sp = new SerialPort(); sp.PortName = config.COMPort; sp.BaudRate = 9600; sp.DataBits = 8; sp.StopBits = StopBits.One; sp.Parity = Parity.None; sp.DataReceived += sp_dataReceive; sp.ReadTimeout = 500; try { sp.Open(); } catch (Exception e1) { if (MessageBox.Show(打开串口时失败, 工作站将不能正常读码, 是否继续?, 警告, MessageBoxButtons.YesNo) != DialogResult.Yes) { Close(); } }数据接收事件:public void sp_dataReceive(object sender, SerialDataReceivedEventArgs e) { int i = 0; byte[] data = new byte[20]; try { while (i < 20) data[i++] = (byte)sp.ReadByte(); } catch (Exception e1) { } if (tbBSM.Enabled) { strBsm = Encoding.ASCII.GetString(data, 0, i); if (strBsm.Length >= 10) { strBsm = strBsm.Substring(0, 10); } MethodInvoker mi = new MethodInvoker(updateBSM); this.BeginInvoke(mi); this.Invalidate(); } }

asp.net转wince,不懂电路、串口、Modbus协议,需要什么基础

基于.net编程,需要清除协议的概念,可以不了解电路知识。

WinCE设备上的串口助手,如何检测串口设备好坏…需要发送什么指令…请指教

如果仅检测wince设备的串口是否正常,可以把串口的TX和RX短接,打开串口助手选择对应的串口号,波特率随意,随便发送什么数据如果收到的数据和发送的一样说明串口正常;如果是检测外部串口模块的好坏,需要知道模块的透明指令集,如果发送成功有对应数据帧返回就说明模块正常,每个外挂模块的指令集不一定相同

wince 6.0 如何把调试串口改为普通串口

步骤:1:在D:\\\/WINCE600\\\/PLATFORM\\\/SMDKC100\\\/MDK100.bat里面set BSP_NOSERIAL=set BSP_NOUART0=set BSP_NOUART1=set BSP_NOUART2=set BSP_NOUART3=set BSP_NOIRDA2=1set BSP_NOIRDA3=1@REMset BSP_DEBUGPORT=SERIAL_UART0 @REMset BSP_DEBUGPORT=SERIAL_UART1 @REM set BSP_DEBUGPORT=SERIAL_UART2@REM set BSP_DEBUGPORT=SERIAL_UART3隐去以上的,主要是要加载各个串口的注册表信息一边加载驱动如果哪个不隐去,则哪个就不加载,用于调试串口2:在D:\\\/WINCE600\\\/PLATFORM\\\/SMDKC100\\\/SRC\\\/OAL\\\/OALLIB\\\/debug.c里面要隐去VOID OEMWriteDebugByte(UINT8 ch)和、int OEMReadDebugByte()里面的内容:注意如果不隐去则烧写系统进不了,死在这了

VOID OEMWriteDebugByte(UINT8 ch){\\\/\\\/ Wait for TX Buffer Empty\\\/\\\/\\\/\\\/ while (!(g_pUARTReg->UTRSTAT & 0x2));\\\/\\\/muscle boy\\\/\\\/ g_pUARTReg->UTXH = ch; \\\/\\\/muscle boy}\\\/\\\/------------------------------------------------------------------------------\\\/\\\/\\\/\\\/ Function: OEMReadDebugByte\\\/\\\/\\\/\\\/ Reads a byte from the debug serial port. Does not wait for a character.\\\/\\\/ If a character is not available function returns OEM_DEBUG_READ_NODATA.\\\/\\\/int OEMReadDebugByte(){\\\/* int ch; \\\/\\\/muscle boyif (g_pUARTReg->UTRSTAT & 0x1) \\\/\\\/ There is received data{ch = (int)(g_pUARTReg->URXH);}else \\\/\\\/ There no data in RX Buffer;{ch = OEM_DEBUG_READ_NODATA;}return ch;*\\\/ \\\/\\\/muscle boy}

求WinCE6.0平台上可运行的串口读写程序,C#编写,使用.net campactframework.

C#串口读写程序方法具体如下:PortDataSend.cs 发送Classusing System;using System.Collections.Generic;using System.Text;namespace IOCPTest.BaseC...{ public class PortDataSend ...{ Declare#region Declare private long mCount = 0; private int mDataLength = 0; private byte[] BS = null; #endregion Declare PortDataSend#region PortDataSend public PortDataSend() ...{ } public PortDataSend(byte[] pBS, int pDataLength) ...{ BS = pBS; mDataLength = pDataLength; } #endregion PortDataSend DataSend#region DataSend public void DataSend() ...{ try ...{ if (BS == null) ...{ return; } if (mDataLength == 0) ...{ mDataLength = BS.Length; } if (mDataLength == 0) ...{ return; } mDataLength = mDataLength + 2; byte[] BST = new byte[mDataLength]; BST[BST.Length - 2] = 0x00; BST[BST.Length - 1] = 0x03; for (int i = 0; i < BS.Length; i++) ...{ BST[i] = BS[i]; BST[BST.Length - 2] = (byte)(BST[BST.Length - 2] ^ BS[i]); } IOCPTest.BaseC.GlobeValues.SP.Write(BST, 0, BST.Length); mCount++; mDataLength = 0; } catch ...{ } } #endregion DataSend mCount#region mCount public long GetCount ...{ get ...{ return mCount; } } #endregion mCountDataSendTest3#region DataSendTest3 public void DataSendTest3() ...{ try ...{ byte[] BSTest; string[] mBSStr = Convert.ToString(01 02 03 01 00 3A 02 03 31 31 31 31 31 31 31 31 31 31 31 31 2C 00 01 2C 00 64 3B 32 32 32 32 32 32 32 32 32 32 32 32 2C 00 01 2C 00 64 3B 33 33 33 33 33 33 33 33 33 33 33 33 2C 00 01 2C 00 64 3B).Split(' '); BSTest = new byte[mBSStr.Length]; for (int i = 0; i < BSTest.Length; i++) ...{ BSTest[i] = (byte)Convert.ToInt32(mBSStr[i], 16); } BS = BSTest; DataSend(); } catch ...{ } } #endregion DataSendTest3}}PortDataReceived.cs 接收Classusing System;using System.Collections.Generic;using System.Text;namespace IOCPTest.BaseC...{ class PortDataReceived ...{ Declare#region Declare private long mCount = 0; private int mDataEnd = 0; private byte[] BR = new byte[2048]; private byte[] BRTmp = new byte[2048]; private byte mSOH = 0x01; \\\/\\\/通讯特殊字符定义:通讯字头 private byte mSTX = 0x02; \\\/\\\/通讯特殊字符定义:数据开始 private byte mETX = 0x03; \\\/\\\/通讯特殊字符定义:通讯结束 #endregion Declare PortDataReceived#region PortDataReceived public PortDataReceived() ...{ } #endregion PortDataReceived Listen#region Listen public byte[] Listen() ...{ try ...{ byte[] BR = ReceiveData();return BR; } catch (NullReferenceException NullEx) ...{ throw NullEx; } catch (Exception ex) ...{ throw ex; } } #endregion Listen ReceiveData#region ReceiveData public byte[] ReceiveData() ...{ try ...{ int mStartCount = 0; int mSOHPos = 0; int mSTXPos = 0; int mETXPos = 0; int mCmdLength = 0; System.DateTime DT = System.DateTime.Now; byte[] Data = null; BRTmp = new byte[2048]; while((System.DateTime.Now.Ticks - DT.Ticks) < IOCPTest.BaseC.GlobeValues.PortTimeOut) ...{ try ...{ mStartCount = 0; \\\/\\\/System.Threading.Thread.Sleep(IOCPTest.BaseC.GlobeValues.PortDelay); mStartCount = IOCPTest.BaseC.GlobeValues.SP.Read(BRTmp, 0, 2048); for (int i = 0; i < mStartCount; i++) ...{ BR[i + mDataEnd] = BRTmp[i]; } mDataEnd = mDataEnd + mStartCount; } catch ...{ } if (mStartCount > 0) ...{ DT = System.DateTime.Now; } \\\/\\\/寻找并且校验SOH、STX、ETX的位置 for (int i = 0; i < BR.Length - 6; i++) ...{ if((BR[i] == mSOH) && (BR[i+6] == mSTX)) ...{ mSOHPos = i; mSTXPos = i+6; mCmdLength = (int)BR[i+4] * 256 + (int)BR[i+5]; mETXPos = mSTXPos + mCmdLength + 2; if (BR[mETXPos] == mETX) ...{ Data = new byte[mSTXPos + mCmdLength + 1 - mSOHPos]; for (int j = 0; j < mSTXPos + mCmdLength + 1 - mSOHPos; j++) ...{ Data[j] = BR[mSOHPos + j]; } for (int j = 0; j < (mDataEnd - (mSTXPos + mCmdLength + 1)); j++) ...{ BR[j] = BR[(mSTXPos + mCmdLength + 1) + j]; } for (int j = (mDataEnd - (mSTXPos + mCmdLength + 1)); j < 2048; j++) ...{ BR[j] = 0x00; } mDataEnd = mDataEnd - (mSTXPos + mCmdLength + 1); IOCPTest.BaseC.GlobeValues.DataBuffer.Add(Data); mCount++; return Data; } } } } return null; } catch (NullReferenceException NullEx) ...{ throw NullEx; } catch (Exception ex) ...{ throw ex; } } #endregion ReceiveData ReceiveDataNonReturn#region ReceiveDataNonReturn public void ReceiveDataNonReturn() ...{ try ...{ ReceiveData(); } catch ...{ } } #endregion ReceiveData ReceiveDataThread#region ReceiveDataThread public void ReceiveDataThread() ...{ try ...{ while (true) ...{ try ...{ ReceiveData(); } catch ...{ } } } catch ...{ } } #endregion ReceiveData mCount#region mCount public long GetCount ...{ get ...{ return mCount; } } #endregion mCount}}DataProcessingIOCP.cs 处理Classusing System;using System.Collections.Generic;using System.Text;namespace IOCPTest.BaseC...{ public class DataProcessingIOCP ...{ Declare#region Declare private long mCount = 0; #endregion Declare DataProcessingIOCP#region DataProcessingIOCP public DataProcessingIOCP() ...{ } #endregion DataProcessingIOCP DataProcessing#region DataProcessing public void DataProcessing() ...{ try ...{ int mCurrentBuffer = 0; while (true) ...{ byte[] RD = null; 提取正待处理的数据#region 提取正待处理的数据 if (IOCPTest.BaseC.GlobeValues.DataBuffer != null) ...{ if (IOCPTest.BaseC.GlobeValues.DataBuffer.Count > 0) ...{ if (mCurrentBuffer < 0) ...{ mCurrentBuffer = 0; } RD = (byte[])IOCPTest.BaseC.GlobeValues.DataBuffer[mCurrentBuffer]; mCurrentBuffer++; } else ...{ continue; } } else ...{ continue; } #endregion 提取正待处理的数据 数据处理#region 数据处理switch (RD[3]) \\\/\\\/指令处理 ...{ case 0x01: ReadData_0X01(RD); break; case 0x02: ReadData_0X02(RD); break; }#endregion 数据处理处理结束,删除已经处理了的数据#region 处理结束,删除已经处理了的数据 if (IOCPTest.BaseC.GlobeValues.DataBuffer != null) ...{ if (IOCPTest.BaseC.GlobeValues.DataBuffer.Count > 0) ...{ IOCPTest.BaseC.GlobeValues.DataBuffer.Remove(RD); } } mCurrentBuffer--; if (mCurrentBuffer < 0) ...{ mCurrentBuffer = 0; } #endregion 处理结束,删除已经处理了的数据 mCount++; } } catch ...{ } } #endregion DataProcessing mCount#region mCount public long GetCount ...{ get ...{ return mCount; } } #endregion mCount ReadData_0X01#region ReadData_0X01 private void ReadData_0X01(byte[] pRD) ...{ try ...{ try ...{ if (pRD[3] != 0x01) ...{ return; } string[] mSampleCode = new string[pRD[7]]; int[] mTesterType = new int[pRD[7]]; int[] mLoadCapacity = new int[pRD[7]]; for (int i = 0; i < pRD[7]; i++) ...{ for (int j = 0; j < 12; j++) ...{ mSampleCode[i] = mSampleCode[i] + Convert.ToString(Convert.ToChar(pRD[8 + j + i * 19])); } mTesterType[i] = pRD[i * 19 + 21] * 255 + pRD[i * 19 + 22]; mLoadCapacity[i] = pRD[i * 19 + 24] * 255 + pRD[i * 19 + 25]; } return; } catch (Exception Ex) ...{ throw Ex; } } catch ...{ } } #endregion ReadData_0X01 ReadData_0X02#region ReadData_0X02 private void ReadData_0X02(byte[] pRD) ...{ try ...{ try ...{ if (pRD[3] != 0x02) ...{ return; } int[] mData = new int[pRD[7]]; string mSampleCode = ; for (int i = 0; i < 12; i++) ...{ mSampleCode = mSampleCode + Convert.ToString(Convert.ToChar(pRD[8 + i])); } for (int i = 0; i < mData.Length; i++) ...{ mData[i] = pRD[i * 2 + 20] * 255 + pRD[i * 2 + 21]; } } catch (Exception Ex) ...{ throw Ex; } } catch ...{ } } #endregion ReadData_0X02 ReadData_0X02_Request#region ReadData_0X02_Request private void ReadData_0X02_Request(byte[] pRD) ...{ try ...{ try ...{ if (pRD[3] != 0x02) ...{ return; } int[] mData = new int[pRD[7]]; string mSampleCode = ; for (int i = 0; i < 12; i++) ...{ mSampleCode = mSampleCode + Convert.ToString(Convert.ToChar(pRD[8 + i])); } for (int i = 0; i < mData.Length; i++) ...{ mData[i] = pRD[i * 2 + 20] * 255 + pRD[i * 2 + 21]; } } catch (Exception Ex) ...{ throw Ex; } } catch ...{ } } #endregion ReadData_0X02_Request }}

wince串口的数据采集

既然是买来的开发板,那么相应的内核、驱动等都是做好的,你只需要下载的板子上就可以了,成功后,WINCE操作系统完美运行,这时你可以说操作系统是你移植成功的,但是前期工作你要大体了解下,知道移植操作系统是怎么回事,到老师提问时别摸不着头脑。

对于串口的数据采集,就是一个相应的界面,界面上有相应的按钮,按下相应的按钮实现相应的功能,具体怎么布局、怎样设计就看你自己的想法了。

这一块主要就是在你所生成的SDK下写应用程序,主要环境为EVC或者VS2005,所用的开发语言VB、VC、C#等都可以。

如何把wince Sate210 的调试串口改成普通串口

wince的调试串口作为普通串口使用 creator 目前wince的串口0是作为调试串口用的,但是因为我的案子需要3个串口,所以要把它改为普通串口,但是开机时候

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片