技术论坛

TIA RT Advanced使用MSComm为什么只能以二进制形式接收单个字符?

作者 主题
新手

经验值: 45
发帖数: 1
精华帖: 0
主题:【求助】TIA RT Advanced使用MSComm为什么只能以二进制形式接收单个字符?


只看楼主 楼主 2021-11-02 15:22:50

TIA V16 RT advanced用MSComm串口通信,只能接收调试工具发送的单个字符(或单个十六进制数),若一次发送多个字符(>=2个字符),则显示InBufferCount为0;

若RThreshold=2,则还是只能发送单个字符,但识别(显示)时,是按Unicode码显示的(如:0x61,0X00,对应'a'因为TIA RT advanced只支持WString,再发送,则会覆盖‘a’)

' 打开串口,因为直接操作PortOpen属性无效。

objMSComm1.CommPort=3
 objMSComm1.Settings="9600,N,8,1"
 objMSComm1.RThreshold=1
 objMSComm1.SThreshold=0
 ' 以二进制形式接收
 objMSComm1.InputMode=1
 objMSComm1.InBufferCount=0

' 每次读取全部数据
 objMSComm1.InputLen=0
 ' objMSComm1.Enabled=True

' 打开串口
 tagPortOpen.Value=True


OnComm部分:

' 读取InBufferCount值

tagCount.Value=objMSComm1.InBufferCount
  ' 读取接收数据
  strTemp=CStr(objMSComm1.Input)

' 将接收数据显示
  tagRecBuffer.Value=strTemp



若InputMode=0,只能正确接收调试工具第一次发送的单个字符,再发送时,InBufferCount就变为0了。


 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1725800&b_id=5&s_id=0&num=1

版主

经验值: 69061
发帖数: 12270
精华帖: 59
回复:TIA RT Advanced使用MSComm为什么只能以二进制形式接收单个字符?


只看楼主 1楼 2021-11-02 22:14:27

 objMSComm1.RThreshold=1
 objMSComm1.SThreshold=0


这两个属性好像是一个发送缓存,一个接收缓存,你设置成1,那就是1个字节吧


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
TIA RT Advanced使用MSComm为什么只能以二进制形式接收单个字符?
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。