有两台外设(类似于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电源,因此通讯时不可能使用流量控制我能提供的信息就只有那么多,高人帮帮忙吧。如果需要更多的测试数据,可以发消息给我。
解决方案 »
- 类似于金山电池卫士的界面
- 响应文件/新建的代码?
- 【Visual Studio 2010 传说的 Class Wizard 在哪里啊?】
- 如何将win32 console application 程序放到win32 application中运行
- 为什么模仿MFC的方式把窗体注册和创建过程放到WinMain外部就失败?
- 请教:进程如何获知自己被强制性杀掉的消息(譬如通过任务管理器杀掉进程a,a如何得知这个消息?)?有没有事件?
- 为什么一个多播程序老是会出现这个错误,但有时不出现?setsockopt(IP_ADD_MEMBERSHIP) failed
- SOS:"磁盘已满”?UP有分
- DirectDraw双缓冲运行错误
- 高手们 请问这段代码怎么改成后台的 意思是不用真正的打开一个网页
- 各位帮忙!我真不知怎么办了!
- 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