有两台外设(类似于PDA)通过RS232通讯,现在我不知道他们的串口设置(Baudrate, databit, stopbit都不知道)。
在RS232上我将RX输出连接到电脑,当PC上串口程序的Baurdate>9600时接收到数据全部是0x00,当Baudrate低于9600时有些数据
9600 时 接收到 00 00 80 80 00 00 00 00 00 80 00 00 80 00 00 80 80 00 由于通讯时的数据每次都不一样,因此这条数据仅供参考
....
300 时 A4 F4 或 24 EB 或74 C1(数据仅供参考)两台设备中有一台他的串口参数可能值如下:
Baudrate: 38400/19200/9600/4800/2400/1200/600/300
Databit: 7/8
Parity : Even/Old/None
StopBit: 1两台设备直接仅仅使用了4个脚位
RX, TX, GND和5V电源,因此通讯时不可能使用流量控制我能提供的信息就只有那么多,高人帮帮忙吧。如果需要更多的测试数据,可以发消息给我。
在RS232上我将RX输出连接到电脑,当PC上串口程序的Baurdate>9600时接收到数据全部是0x00,当Baudrate低于9600时有些数据
9600 时 接收到 00 00 80 80 00 00 00 00 00 80 00 00 80 00 00 80 80 00 由于通讯时的数据每次都不一样,因此这条数据仅供参考
....
300 时 A4 F4 或 24 EB 或74 C1(数据仅供参考)两台设备中有一台他的串口参数可能值如下:
Baudrate: 38400/19200/9600/4800/2400/1200/600/300
Databit: 7/8
Parity : Even/Old/None
StopBit: 1两台设备直接仅仅使用了4个脚位
RX, TX, GND和5V电源,因此通讯时不可能使用流量控制我能提供的信息就只有那么多,高人帮帮忙吧。如果需要更多的测试数据,可以发消息给我。
解决方案 »
- 我们公司最近在招VC的人,有意愿的我可以推荐下
- 一个动态连接库加载的问题,高手请指教!!!!
- chm 文档?
- 请问qq把尚未传完的文件放在什么地方?
- 对VC++不熟悉,现在需要做一个工具,有几个问题想请教各位兄弟.
- 请问ListCtrl如何动态增减列?
- 显示内存数据的最快方法?
- 在win2000下com有内存泄漏是否会导致svchost.exe这个程序使用的内存越来越多
- 怎么让窗口菜单的菜单元不自动增加
- 各位高手求救!!!为什么Edit控件的垂直滚动条不能响应ON_WM_VSCROLL??本人菜鸟,被这个搞了好久都弄不清楚!
- 各位帮忙!我真不知怎么办了!
- UDP在一个网卡多个IP地址情况下的问题
一般协议不对是接收不到任何信息的,
如果收到0x00,在PB中不能处理0x00,就相当与收不到任何信息。
我建议你设置一下通信协议:4种
CreatFile
打 开 串 行 口
SetupComm
设 置 通 信 缓 冲 区 的 大 小
ReadFile
读 串 口 操 作
WriteFile
写 串 口 操 作
SetCommState主要是 SetCommState, 提取出設置參數!!!
CreatFile
打 开 串 行 口
SetupComm
设 置 通 信 缓 冲 区 的 大 小
ReadFile
读 串 口 操 作
WriteFile
写 串 口 操 作
SetCommState主要是 SetCommState, 提取出設置參數!!!
int nPortNum,
DWORD dwBaudRate = CBR_38400,
BYTE bByteSize = 8,
BYTE bParity = 1,
BYTE bStopBits = 0,
DWORD dwReadIntervalTimeout = 15,
DWORD dwReadTotalTimeoutMultiplier = 10,
DWORD dwReadTotalTimeoutConstant = 100,
DWORD dwWriteTotalTimeoutMultiplier = 0,
DWORD dwWriteTotalTimeoutConstant = 100
SetCommTimeouts()//设置超时
SetupComm() // 设置缓冲区大小
SetCommMask() // 设置串口想处理的事件
GetCommState() // 得到串口状态
SetCommState() // 设置串口状态
// 设置 DCB 信息
m_dcb.BaudRate = dwBaudRate;
m_dcb.ByteSize = bByteSize;
m_dcb.Parity = bParity;
m_dcb.StopBits = bStopBits;
m_dcb.fBinary = TRUE;
ClearPort() // 清理串口
StartMonitor() // 开线程处理I/O