串口通讯的问题!100分送上!

时间:2022-07-30 04:41:57
采用MsComm,同时打开四个串口,数据老是接受不到。但是如果只有两个,没有任何问题,这怎么办是好?

23 个解决方案

#1


4个!?
你的计算机有这么多串口?

#2


这样的话,我也帮不上忙,我的计算机只有两个串口。

#3


你好,你的问题解决了吗,我的程序有帮助吗?你用的是API还是mfc呀!

#4


1、看看波特率设置的是否一致,还有数据位数、停止位;
2、数据是否被发送出去;

希望提供更详细的情况,祝你好运!

#5


同时打开四个串口是所有的串口都不对吗?
我用了四口卡,一点都没有问题。
不过我没有用msComm,那玩意太笨

#6


请说的具体点

#7


首先要感谢阿茂兄的鼎力支持!你的程序我做了些改动,在一个框架里实现串口1收和串口2发,运行十分平稳。但是,当我“OpenComm”中打开第三个串口的时候,接受数据功能就实现不了了。这与我使用三个控件的结果是一致的。解凌还需系凌人,还请阿茂兄指点。
loutingyv,你好。确实4个串口都不能接受数据。不知,你使用的是什么方法?能否指点一二?

#8


你发送的是字符串还是二进制数据?

#9


deliang:我是以字符串形式发送的。尝试过二进制方式,但是没有成功。是不是以二进制方式传送可以解决这个问题?能否给出具体的接受程序?谢谢!

#10


自己写了一个类。不过要自己处理DTR,CTS。(我用的5线通信)
你用的几条线。

#11


我扩充串口用的是古老的多功能卡,导致串口1和3,2和4分别共享一个中断号,这是不是导致三个以上(含三个)串口同时打开,不能接收数据的原因呢?

#12


由于中断号相同,当你打开第三个串口是,实际上windows认为你在打开一个已经打开的串口,应该会报无法初始错误。

#13


用多功能卡扩充串口,三个串口的IRQ不能相同。如果实在要用的话,把鼠标的中断12调过来,勉强可以用,不过有时会出问题。建议你买块MOXA卡好了。我以前也这样做过,一块多功能卡,扩了个串口,过两天就出毛病,让我总以为代码有问题。后来买了块MOXA,什么事都没了。

#14


做串口这类东西最好用APE,很简单又好控制

#15


谢谢WEE的指点,三个串口同时打开,就没有成功的接受过数据。
多功能卡上串口的IRQ可以在Windows下更改,但是有没有跳线需要改变呢?这快破卡子,可是什么孤零零的,什么帮助都没有带啊!

#16


串口通讯的api函数是什么呀?

#17


如果不买moxa卡,是不是就没有别的方法了?

#18


我刚开发过一个电子称数据采集程序,我认为必须有块MOXA,其次用MSCOMM Contror 问题就一定多多(当初我也图方便 但数据总是无法实时传递尤其是多个窜口控件更是如此)既然选了vc为什么
不试试直接使用API 我保证一点问题都没有.否则的话用VB算了,MSCOMM就是为它开发的嘛,至于参考资料今天刚好买了一本叫"32位嵌入系统编程"中国电力出版,物超所值!如果还不行,我这刚好有个开发过的使用API原代码,发E-Mail:albert@aflea.com我换E-mail了!

#19


我也很感兴趣

#20


感谢冷血狐狸(呵呵,让我想起《卧虎藏龙》里的碧眼狐狸)。
我发现了,必须要用MOXA,一用moxa,问题立马解决。不过,在api上还请狐兄多指教。

#21


你采用轮巡的方式去主动读取数据也不行吗?如果你是在DOS模式下可以使用直接访问中断方式来进行串口通讯,而且MSCOMM实在是不好用,你可以在codegure上找到一个CSerial类,可以实现串口通讯的功能。

#22


谢谢各位!我要给分了!可是怎么给分啊??????

#23


我找不到给分的方法!!!!!!!!

#1


4个!?
你的计算机有这么多串口?

#2


这样的话,我也帮不上忙,我的计算机只有两个串口。

#3


你好,你的问题解决了吗,我的程序有帮助吗?你用的是API还是mfc呀!

#4


1、看看波特率设置的是否一致,还有数据位数、停止位;
2、数据是否被发送出去;

希望提供更详细的情况,祝你好运!

#5


同时打开四个串口是所有的串口都不对吗?
我用了四口卡,一点都没有问题。
不过我没有用msComm,那玩意太笨

#6


请说的具体点

#7


首先要感谢阿茂兄的鼎力支持!你的程序我做了些改动,在一个框架里实现串口1收和串口2发,运行十分平稳。但是,当我“OpenComm”中打开第三个串口的时候,接受数据功能就实现不了了。这与我使用三个控件的结果是一致的。解凌还需系凌人,还请阿茂兄指点。
loutingyv,你好。确实4个串口都不能接受数据。不知,你使用的是什么方法?能否指点一二?

#8


你发送的是字符串还是二进制数据?

#9


deliang:我是以字符串形式发送的。尝试过二进制方式,但是没有成功。是不是以二进制方式传送可以解决这个问题?能否给出具体的接受程序?谢谢!

#10


自己写了一个类。不过要自己处理DTR,CTS。(我用的5线通信)
你用的几条线。

#11


我扩充串口用的是古老的多功能卡,导致串口1和3,2和4分别共享一个中断号,这是不是导致三个以上(含三个)串口同时打开,不能接收数据的原因呢?

#12


由于中断号相同,当你打开第三个串口是,实际上windows认为你在打开一个已经打开的串口,应该会报无法初始错误。

#13


用多功能卡扩充串口,三个串口的IRQ不能相同。如果实在要用的话,把鼠标的中断12调过来,勉强可以用,不过有时会出问题。建议你买块MOXA卡好了。我以前也这样做过,一块多功能卡,扩了个串口,过两天就出毛病,让我总以为代码有问题。后来买了块MOXA,什么事都没了。

#14


做串口这类东西最好用APE,很简单又好控制

#15


谢谢WEE的指点,三个串口同时打开,就没有成功的接受过数据。
多功能卡上串口的IRQ可以在Windows下更改,但是有没有跳线需要改变呢?这快破卡子,可是什么孤零零的,什么帮助都没有带啊!

#16


串口通讯的api函数是什么呀?

#17


如果不买moxa卡,是不是就没有别的方法了?

#18


我刚开发过一个电子称数据采集程序,我认为必须有块MOXA,其次用MSCOMM Contror 问题就一定多多(当初我也图方便 但数据总是无法实时传递尤其是多个窜口控件更是如此)既然选了vc为什么
不试试直接使用API 我保证一点问题都没有.否则的话用VB算了,MSCOMM就是为它开发的嘛,至于参考资料今天刚好买了一本叫"32位嵌入系统编程"中国电力出版,物超所值!如果还不行,我这刚好有个开发过的使用API原代码,发E-Mail:albert@aflea.com我换E-mail了!

#19


我也很感兴趣

#20


感谢冷血狐狸(呵呵,让我想起《卧虎藏龙》里的碧眼狐狸)。
我发现了,必须要用MOXA,一用moxa,问题立马解决。不过,在api上还请狐兄多指教。

#21


你采用轮巡的方式去主动读取数据也不行吗?如果你是在DOS模式下可以使用直接访问中断方式来进行串口通讯,而且MSCOMM实在是不好用,你可以在codegure上找到一个CSerial类,可以实现串口通讯的功能。

#22


谢谢各位!我要给分了!可是怎么给分啊??????

#23


我找不到给分的方法!!!!!!!!