VB 上位机 串口 MSP430

大家好!我在做VB上位机和MSP430串口通信时,遇到一个问题。就是通过MScom控件发送数据时,一直是字符类型。例如将在MSComm.Output=Trim(Text_... 大家好!我在做VB上位机和MSP430串口通信时,遇到一个问题。就是通过MScom控件发送数据时,一直是字符类型。例如将在
MSComm.Output = Trim(Text_Send.Text) '把发送文本框的内容放入输出缓存
但这就存在在一个问题,由于它是字符型,如果发送‘23’,实际在TX线上传输的是32 33。那么在单片机接收就要接收两次,如果上位机发送多组数据的话,就增加了接收难度。

我现在想问一下:
(1)在VB中有没有那个控件的值是HEX,并且可用于串口发送,即可读可写。或者就像TEXT.Text,但是通过什么函数,能把它的值变为HEX,只有一组数据发送。
(2)在串口中断接收帧数据,当第一次接收并判断帧头,
if(ENQ==55)
{}
如何在判断好帧头情况下,在接收后面的数据。如果在接收写在if语句中,下次数据不为55,就不会进入if语句,也就是MSP430串口接收多组数据怎么处理?
问题比较多,谢谢大家帮忙!
展开
 我来答
匿名用户
2013-07-30
展开全部
    Dim sendSj(0) As Byte
    sendSj(0) = &H17
    MSComm1.Output = sendSj

 以Byte数组发送就能达LZ目的。

设置MSComm1.InputMode = comInputModeBinary,就能以2进制方式(LZ要的16进制)接收。

更多追问追答
追问
谢谢楼上的回答,上面发送的是定值,要是我想在一个text文本框中输入任意值,比如55,然后发送出去,并且在是十六值0x55,有什么转换函数或方法?
追答
    Dim sendSj(0) As Byte
    sendSj(0) = Val("&H" & "55")
    MSComm1.Output = sendSj

 或者

    Dim sendSj(0) As Byte
    sendSj(0) = &H55
    MSComm1.Output = sendSj

 

适当范围内的数字,前缀以 &H,可以直接表示十六进制数字。例如,十六进制表示法的 &H10
代表十进制的 16。

意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式