c#中serialPort,发送一个命令过去,马上就有一个回应,怎样接收这个回应信息,委托也做了,就是没收到

还有个问题就是,我使用serialPort控件连接到串口,发送完第一次命令后,之后就一直显示串口已开启,不能在命名,我的做法是每次发命令前,打开串口,命令发完后关闭;之后... 还有个问题就是,我使用serialPort控件连接到串口,发送完第一次命令后,之后就一直显示串口已开启,不能在命名,我的做法是每次发命令前,打开串口,命令发完后关闭;之后第二次发送命令时再打开关闭。感觉这个方法不好,有没有大神有更好的方法 展开
 我来答
百度网友cce4a3c
2013-07-18 · TA获得超过144个赞
知道答主
回答量:50
采纳率:0%
帮助的人:34.9万
展开全部
serialPort控件的 DataReceived事件接收返回,它是在线程中完成的,串口必须是232的才有主动上传的,485的只有你发查询命令的时候才会有返回。
更多追问追答
追问
我的是232的,就控制打印的,我发每一条指令都应该有一个回复的,但现在是接收不到
追答
用串口调试工具,发一tiao看看有没有返回,有说明是程序问题,没有那就是线接错了,或是命令发错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjj796
2013-07-20 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3452万
展开全部
1、不要反复的开关串口
2、采用串口线程接收返回的数据
3、串口对应的参数设置好
追问
但,我第一次打开串口后,发送完一个命令,在次发送命令时,就弹出 串口打开不能再命名。接收数据在DataReceived里?我也写了textbox委托,但没反应啊
追答
1、采用独立的语句打开串口。
2、串口发送的时候,判断串口是否打开?

如果串口没有打开,先开串口,再发送;
如果串口打开,直接发送。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式