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串口接收多组数据怎么处理?
问题比较多,谢谢大家帮忙! 展开
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 广告
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询