Tag: 波特率

C#.Net Serial DataReceived对于高速率数据,事件响应太慢

我已经在VS2008 express中使用基于表单的程序设置了一个SerialDataReceivedEventHandler。 我的串口设置如下: 115200,8N1 Dtr和Rts启用 ReceivedBytesThreshold = 1 我有一个设备,我通过BlueTooth,USB转串口连接。 超级终端以任何数据速率接收数据。 数据以22字节长的数据包定期发送。 该设备具有可调节的数据发送速率。 在低数据速率,10-20Hz,下面的代码很好,没有问题。 但是,当我将数据速率提高到25Hz以上时,会在一次呼叫时开始接收多个数据包。 我的意思是每个传入的数据包都应该有一个事件触发器。 在更高的输出速率下,我在调用事件时立即测试了缓冲区大小(BytesToRead命令),然后缓冲区中有多个数据包。 我认为事件发生的速度很慢,当它到达代码时,更多的数据包已经打到了缓冲区。 我做的一个测试是看每秒触发事件的次数。 在10Hz,我得到10个事件触发器,真棒。 在100Hz,我得到类似40个事件触发器,不好。 我的数据速率目标是100HZ是可接受的,200Hz首选,300Hz最佳。 这应该工作,因为即使在300Hz,这只是52800bps,不到设置的115200波特率的一半。 我在看什么? public Form1() { InitializeComponent(); serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived); } private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { this.Invoke(new EventHandler(Display_Results)); } private void Display_Results(object s, EventArgs e) { serialPort1.Read(IMU, 0, serial_Port1.BytesToRead); }

在没有关闭连接的情况下更改C#中的波特率

我对以下链接有类似的问题。 如何在不关闭连接的情况下更改波特率? 。 但我使用C#代替java。 我开始使用波特率300.然后握手后我必须将波特率更改为4800.我向设备发送命令来执行此操作。 我改变了我的serialport的波特率。 之后,我永远无法继续与设备通信。 (如果我保持300波特率并向设备发送300波特命令,我可以继续通信) 我有一个第三方软件,也可以从这个设备读取。 当软件运行时,我正在监听端口。 它发送我发送给设备的相同命令。 它发送命令为设备设置4800波特,并可以从设备获得答案。 在波特率更改期间,它不会关闭或重新打开端口。 我必须做同样的事情。 但是当我发送命令改为4800波特时,我从设备上得不到答案。 我在等你的答案。 谢谢,FERDA 这是由进程“ReadY.vshost.exe”打开的串口监视程序端口的输出(PID:2608) 01 42 30 03 71 .B0.q 答案:09.08.2011 10:55:40.81864(+0.2656秒) 06。 要求:09.08.2011 10:55:41.06864(+1.2500秒) 2F 3F 31 31 39 39 39 30 30 34 21 0D 0A /?11999004!.. 答案:09.08.2011 10:55:41.58464(+0.5156秒) 2F 53 54 52 34 5F 42 53 4D 31 […]

如何以编程方式在C#中查找所有可用的波特率(serialPort类)

有没有办法找出特定系统通过C#支持的所有可用波特率? 这可以通过设备管理器 – >端口获得,但我想以编程方式列出这些。 谢谢。

使用serialport.open()时IOexception错误

最终更新这是我们固件的全部时间。 在某种程度上令人尴尬,但我很高兴我们可以继续前进,我可以把学习Java关闭一天。 我的答案如下。 更新所以我或多或少地放弃了这一点。 我认为这是一个归结为API的错误,但我没有时间,资源和技能组合来深入了解它。 我认为存在一些Windows只是中指的硬件。 我已经下载了Eclipse,切换到Java并将尝试查看是否有效。 如果没有,你会看到我回到这里。 但是,我绝对喜欢解决这个问题,所以如果有人有时间或倾向深入研究这个问题,我很乐意看到你提出的问题。 显然我会不时回来看看。 请确保你在评论中’@’我,所以我会收到通知。 原始邮政 我知道还有其他一些人在处理这个问题,但我希望有人可以帮助我。 我正在尝试连接到COM端口,但是当我尝试使用serialport.Open()命令时,我收到了IOexception: System.IO.IOException: The parameter is incorrect. at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str) at System.IO.Ports.InternalResources.WinIOError() at System.IO.Ports.SerialStream.InitializeDCB(Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Boolean discardNull) at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean […]