我试图通过usb端口使用MCP2221向c#微芯片发送命令。该命令有64个字节长,主要由0x00组成,但第一个字节是0xB0。我创建一个字节数组,设置所述字节,并使用serialport.write命令编写它。在使用解析usb资源管理器检查发送的字节之后,我注意到它以16字节长的ACK信号的形式发送命令,并且在两者之间发送多个相同长度的空NAK信号块。我可以以单个64字节包的形式正确地执行命令吗?串口使用的默认设置为波德率为9600,没有奇偶校验,并有一个停止位,这应该是微芯片应该是好的。如能提供任何形式的协助,我将不胜感激。
发布于 2017-05-10 19:55:19
我以前遇到过这个问题,因为事件在完全恢复文件之前运行,所以在事件内部的第一个命令中运行Thread.Sleep(200),所以做你想做的事情。在两面做比较好
发布于 2017-05-10 20:09:00
看起来您的串口被配置为使用流控制(默认情况下)。并且您的控制器可能不支持流控制,或者配置为不支持它。如果您不想要流控制,可以尝试简单地禁用它:
port.Handshake = Handshake.None;https://stackoverflow.com/questions/43901538
复制相似问题