fzkqi 发表于 2014-5-1 16:48:21

C# 用rts控制485的方向,rts的控制方向延时时间不好确定怎...

由于只能用rts来控制 485的方向,没有自动方向控制。我在发送数据后如果立即切换到接收,可能发送还没结束,导致发送数据错误。如果用定时器死等延时的话,CPU的占用率会非常高不太好。如果用线程sleep的话,这个时间精度不够,有时候能通讯成功,有的时候方向切换慢了就丢数据了。大家有什么好方法推荐吗?

polarbear 发表于 2014-5-1 18:08:09

用串口中断发送,发送完毕后RST 设置为接收

error_dan 发表于 2014-5-1 18:24:49

我觉得LZ应该是方法有问题,上点代码来看看。

NJ8888 发表于 2014-5-1 18:49:06

本帖最后由 NJ8888 于 2014-5-1 18:50 编辑

queryperformancecounter能保证至少延时你想要的时间

xukaiming 发表于 2014-5-2 14:05:18

可以将串口设置为toggle模式自动换向

fzkqi 发表于 2014-5-3 20:57:02

NJ8888 发表于 2014-5-1 18:49
queryperformancecounter能保证至少延时你想要的时间

你好,用软件延时时导致cpu占用率变高,所以才用线程的sleep。但sleep的精度不太够。

fzkqi 发表于 2014-5-3 20:59:09

xukaiming 发表于 2014-5-2 14:05
可以将串口设置为toggle模式自动换向

你好,就是普通电脑的串口,C#上怎么设置这个toggle模式,我怎么没找到

lingfei 发表于 2017-5-17 22:44:28

485切换 mark

fengyunyu 发表于 2017-5-18 12:21:23

NJ8888 发表于 2014-5-1 18:49
queryperformancecounter能保证至少延时你想要的时间

大牛也懂C#?

NJ8888 发表于 2017-5-18 19:18:24

fengyunyu 发表于 2017-5-18 12:21
大牛也懂C#?

我懂的是delphi{:lol:} ,queryperformance是WIN的API,与语言无关
页: [1]
查看完整版本: C# 用rts控制485的方向,rts的控制方向延时时间不好确定怎...