VC开发的一款上位机界面串口通信中同时发送和接收数据会发生冲突吗?

tigeryujie 2012-08-20 08:58:05
VC开发的一款上位机界面串口通信中同时发送和接收数据会发生冲突吗?
如果需要能实现同时接收和发送数据,怎么实现呢?
...全文
420 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangxd09 2012-08-30
  • 打赏
  • 举报
回复
MSComm有问题的,自己实现一个 或者 网上有代码
tigeryujie 2012-08-30
  • 打赏
  • 举报
回复
哎,怎么就没人回帖了呢?
tigeryujie 2012-08-30
  • 打赏
  • 举报
回复
MSComm有问题的?什么问题?可以详细的说说吗?我看书的时候它是封装好的呀,是事件驱动方式呀!
tigeryujie 2012-08-28
  • 打赏
  • 举报
回复
我串口通信用的是MSComm控件,它的接收程序部分是自动的,我想要的是每接收到一帧数据,就立即对这个数据进行处理,貌似多线程也建立不了,因为线程函数要有特定的格式,而我现在是
void CDSPDlg::OnOnCommMscomm1() 这样的一个格式,如何把这样的一个函数设置成线程函数体呢?
还有我是每8ms发送数据的同时要接收下位机每8ms发送来的数据并立刻能够执行!貌似这个里面冲突很多,迫切想寻求到解决方案!
tigeryujie 2012-08-28
  • 打赏
  • 举报
回复
求详解!!!
supersonic0410 2012-08-26
  • 打赏
  • 举报
回复
串口是有自己的收发缓存区的,大小可以编程设置。 不用担心数据到达时,你还没调用接收数据的函数,系统会给你缓存起来的,你调用一次接收 就把之前没有收的数据全弄上来了。
  • 打赏
  • 举报
回复
你真的迫切需要全双工么?
据我所知只有rs422支持全双工
傻X 2012-08-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
串口可以支持全双工模式,没有问题
[/Quote]

没错,我玩串口到现在没碰到过问题。并且我都玩连续性很高的交互传输模式(传感方向的)
傻X 2012-08-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
串口可以支持全双工模式,没有问题
[/Quote]

没错,我玩串口到现在没碰到过问题。并且我都玩连续性很高的交互传输模式(传感方向的)
tigeryujie 2012-08-25
  • 打赏
  • 举报
回复
我是每8ms发送一次数据,然后同时8ms接收数据,这样会导致接收数据不全吗?
whucv 2012-08-25
  • 打赏
  • 举报
回复
建立两个线程,一个接收数据线程,一个发送数据线程。
使用临界区控制数据不会跨线程访问,使用事件控制通知线程执行顺序。
tigeryujie 2012-08-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
引用 5 楼 的回复:
串口可以支持全双工模式,没有问题


没错,我玩串口到现在没碰到过问题。并且我都玩连续性很高的交互传输模式(传感方向的)
[/Quote]

大哥,硬件上当然支持(全双工),我是编写程序(vc),程序里面既有发送函数,也有接收函数,那在发送数据时当然在发送函数里跑程序,不会跑到接收函数里跑程序,执行代码呀!!!所以这样会导致接收到的数据有丢失,不知道大家理解我的意思没有???
tigeryujie 2012-08-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
引用 5 楼 的回复:
串口可以支持全双工模式,没有问题


没错,我玩串口到现在没碰到过问题。并且我都玩连续性很高的交互传输模式(传感方向的)
[/Quote]

大哥,硬件上当然支持(全双工),我是编写程序(vc),程序里面既有发送函数,也有接收函数,那在发送数据时当然在发送函数里跑程序,不会跑到接收函数里跑程序,执行代码呀!!!所以这样会导致接收到的数据有丢失,不知道大家理解我的意思没有???
tigeryujie 2012-08-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
引用 5 楼 的回复:
串口可以支持全双工模式,没有问题


没错,我玩串口到现在没碰到过问题。并且我都玩连续性很高的交互传输模式(传感方向的)
[/Quote]

大哥,硬件上当然支持(全双工),我是编写程序(vc),程序里面既有发送函数,也有接收函数,那在发送数据时当然在发送函数里跑程序,不会跑到接收函数里跑程序,执行代码呀!!!所以这样会导致接收到的数据有丢失,不知道大家理解我的意思没有???
geleg 2012-08-21
  • 打赏
  • 举报
回复
先读后写
或者先写后读

便可以。
tigeryujie 2012-08-21
  • 打赏
  • 举报
回复
可是我是这么认为的,全双工只是物理意义上的(也就是硬件支持的),但是我是写程序,程序执行接收数据的同时也能发送数据吗?程序执行的时候不是一条一条的执行的吗?他不可能执行接收数据时又跳到发送数据的函数中吧?多线程是不是能解决这样的问题呢?
这不是鸭头 2012-08-21
  • 打赏
  • 举报
回复
可以同时收发的。全双工的。读的时候要单独的线程去读取,完全没有问题。
jiuzhoulh 2012-08-21
  • 打赏
  • 举报
回复
串口可以支持全双工模式,没有问题
zgl7903 2012-08-21
  • 打赏
  • 举报
回复
RS232全双工模式的话没有问题
zeng383408034 2012-08-21
  • 打赏
  • 举报
回复
串口通信是独占模式的!数据流只能流向一方即单向流动,不能双向流动!
加载更多回复(2)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧