串口通讯COleSafeArray和VARIANT怎么用,接收单片机数据这两个类型怎么用 5C

void CProp1::OnBtnChange()
{
// TODO: Add your control notification handler code here
CByteArray Send_Date_OK;
Send_Date_OK.SetSize(5);
Send_Date_OK[0]=0xaa;
Send_Date_OK[1]=0x1e;
Send_Date_OK[2]=0x02;
Send_Date_OK[3]=0x12;
Send_Date_OK[4]=0xc0;
m_Comm1.SetOutput((COleVariant)Send_Date_OK);

    m_Comm1.SetInputLen(1);
    VARIANT V1=m_Comm1.GetInput();

    COleSafeArray C1;
    C1=V1;
    BSTR m_V1;
    m_V1=C1.bstrVal;
    BOOL operator ==( const COleSafeArray& C1 ) const
    {
        if(m_V1==SysAllocString("BUD_READY"))
        return TRUE;
    }
 代码如上  我用的是MSComm控件编的串口程序,要接收单片机发来的数据然后对比如果是BAUD_READY就发送“接收成功”给上位机,可是怎么接收单片机的数据然后确认是BAUD_READY啊,不懂啊,各位大神给解答一下吧~
0

1个回答

对于串口来说,数据只有字节数组的概念。没有字符串

0
xc301321
xc301321 单片机不能发字符串?我能接受到他的字符串显示出来,但是不想显示这个,所以要转换一下。关键是判断的过程不会做
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
VC++中经常用到的类型转换(总结)
1、VARIANT转COleSafeArray、  COleSafeArray转BYTE型数组 在串口通信的OnCommMscomm()事件中会涉及到这两种类型转换,比如: VARIANT variant_inp; COleSafeArray safearray_inp; LONG len; BYTE rxdata[2048]; if(m_cmsSerial.get_CommEvent
C++使用VARIANT实现二维数组的操作、怎么使用COleSafeArray实现二维数组将字符串写入excel
配合OLED_V2的excel操作 C++使用VARIANT实现二维数组的操作 VARIANT变量是COM组件之间互相通信的重要的参数变量之一,它可以容纳多种不同的类型,如short、long、double等,包括各类指针和数组。组件之间的互相调用是比较耗时的,尤其带当组件位于不同进程中时,因此,减少传递次数是提高效率的一种有效方法。其中,Excel表格的操作就可能涉及到大量数
COleSafeArray二维数组的使用注意
最近在做Excel的读写(OLE/COM),网上的参考虽多,但能用的比较少。 这次用到SetValu2的快速填充,其中使用COleSafeArray来做参数的转换。 碰到一个Bug,特此记录。(OLED_V2) 安全数组二维数组的形式行与列的定义与正常的二维数组定义相反。 COleSafeArray olesaWrite; long *pArray = NULL;
单片机与串口助手通信时数据格式转化问题
一、概述在单片机与串口助手通信时存在很多问题,毕竟一个是通过硬件编程控制的,一个是通过软件编程实现的,两者之间并没有很大的兼容性。最基本的,硬件与软件中很多数据类型是不同的,这就给软件与硬件之间的通信造成了很大的困难。1.无线通信:举个我在做项目中遇到的问题,我们的项目有一部分需要实现手机端软件对硬件实现远程控制,而远程控制就必定涉到软件与硬件之间的通信。通信网络用wifi,用ESP8266-12...
串口通讯中接收和发送float类型数据
使用共用体来解决数据的编解码问题,共用体可以使不同的数据类型来共享相同的地址空间。#include <stdio.h> #include <string.h>int main(void) { union result { float d; unsigned char data[4]; }r1,r2; // 特别需要注意的是在单片机中in
串口通讯上位机(PC)接收数据--下位机(单片机)发送数据
CVI串口通讯上位机(PC)接收数据--下位机(单片机)发送数据。
STC15F2K60S2串口通信程序代码
STC15F2K60S2串口通信程序代码
单片机串口收发字符数据的类型
  今天在用51单片机进行串口收发数据的时候遇到了这样一个问题,上位机给单片机的字符数据是什么类型的,单片机又是怎样存储的?串口中断如下/* UART中断服务函数 */ void InterruptUART() interrupt 4 { if (RI) //接收到字节 { RI = 0; //手动清零接收中断标志位 table1[j] = SBUF; //接收到...
C语言实验单片机串口发送int型数据
之前,在做基于JAVA的串口通信时,遇到了如何发送zhen
求助:ocx控件中的variant类型如何用js赋值
从昨天开始搞一个画图的ocx控件,在网页中调用它,通过javascript给它赋值;调用一个控件中一个画图方法AddNewStream()的时候,怎么试都说是有 “类型不匹配”的错误;控件是用C++写的, 这是方法: [code] void AddNewStream(short stream_seqid, short stream_showflag, unsigned long st...
采用状态机和消息机制的串口接收程序
采用状态机和消息机制的串口接收程序 适用于单片机的串口处理程序 具有参考价值
gridview和datalist区别.
去看看,弄清这两个东西怎么用!
STC15单片机 串口2收发
本代码主要是STC15单片机通过串口2进行收发通信,可以进行一次性多个数据收发
单片机开发串口通信,发送字符1-9接收出问题
问题是,我希望使用串口调试助手,发送0-9的数字,控制灯的亮度。但是发送过去,程序无法读出数据。 部分代码如下: #include&amp;lt;reg52.h&amp;gt; #define uint unsigned int #define uchar unsigned char sbit LED=P2^0; sbit l1=P2^1; sbit l2=P2^2; sbit l3=P2^3; uint ...
SAFEARRAY基本用法详解
SAFEARRAY讲解,自认为还是比较详细的。
编码和串口通信
因为单片机的处理能力有限,所以就一直想拿PC作为上位机进行图像和算法处理,然后通过串口发送数据给单片机(这里我用ESP32),单片机接收到PC的数据然后执行对应的操作。 因为我以前没有好好学过【其实是上课不认真,睡大觉玩手机】,所以看了很多资料和视频,比如最简单的pc与51单片机的通讯点亮一个led灯。 因为我是打算用python写程序嘛,所以这里pc端会用到 pyserial模块,struc...
unity3D和串口通信,接收下位机数据和发送指令
public class SerialCommunication : MonoBehaviour {     public GUIText gui;     public string portName = "COM2";     public int baudRate = 9600;     public Parity parity = Parity.None;     public
51单片机串口通信并用数码管显示接收数据
通过数码管将51单片机从电脑上接收来的数据进行转换并显示出来!
Matlab与单片机的串口通信-matlab…
Matlab提供了对串口进行打开、 关闭、 以及串口参数设置等操作的一系列函数。利用这些函数可以选择串口号、 设置串口通信参数( 波特率、 数据位、 停止位、 校验位等)、进行中断控制、流控制。从建立串口通信到结束串口通信的完整流程包括以下几个步骤: 1、创建串口对象,实现该功能的函数为:         obj= serial(port,'PropertyName',PropertyValue,
SAFEARRAY和它的操作函数
 我们先来看看SAFEARRAY和它的操作函数,从msdn上翻译了那么一段下来SAFEARRAY的定义如下struct SAFEARRAY {   WORD cDims;   WORD fFeatures;   DWORD cbElements;   DWORD cLocks;   void * pvData;   SAFEARRAYBOUNDrgsabound[1];};基本上它的操作函
C++ VARIANT数据类型操作详解
使用VARIANT来传递参数意味着非强类型语言(例如VBScript)能够调用使用强类型语言(C++)实现的方法。 VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。 VARIANT 数据类型在文件OAIDL.IDL中定义如下: [cpp] view plain copy struct tagV
Arduino串口通讯解析数据
本程序功能是Arduino R3串口通讯时,解析接收到的数据。
51单片机实现串口收发
在大学里,我们都学过单片机,单片机什么东西最重要呢?无疑就是中断,串口,定时器,而串口,恰恰是现实中用得最多的一类。一般公司有固定的串口协议,然后工程师们根据协议来开发产品。         51单片机的串口比较简单,这里我们就直接实现一个例子,串口发送一个命令,单片机接收到后响应,会点亮LED,驱动蜂鸣器,驱动流水灯,其实这样的功能在现实开发中也经常做的。       代码如下: /* *
关于VC从VARIANT类型取数据的小结
    这几天,一直为一个以前没见过的类型头痛不已,网上找解决方法又不贴切,着实让我难受了一阵子.今天终于把问题解决,在这里跟大家分..    VARIANT,变体类型,在VB中是一个可以容纳很多常用类型的超级类型,所以,如果不知道它的里面到底存了些什么数据,对着它就像对着一个从未见过面的朋友一样,不知该怎么交流.在这种情况下,我们可以通过取得VARIANT类型变量的vt值,得以确认:    
蓝桥杯单片机串口通讯与串口接收代码详解
我们采用串行口1编程,主要用到的特殊功能寄存器有:数据缓冲寄存器SBUF、串行口1方式控制寄存器SCON、辅助寄存器AUXR等 两个补充链接; C51中的ABSACC.H介绍https://blog.csdn.net/qq_34629988/article/details/53225293. 51单片机 XBYTE说明https://blog.csdn.net/shenhuxi_yu/articl...
PIC单片机精通_串口通讯与串口调试实例
1.引子 团队之所以称之为团队,就意味着多个人在一起共事。需要的是谦虚,谦逊,切勿言之偏偏。也要学会尊重,任何一门编程语言都有自己的优势与不足,否则早就有一门语言一统天下啦!!!我由VB入门,利用C、C++、Java、TCL进行过开发,至今不敢妄言哪种语言最好,只知道把事情做好,才是最成功的。 耐心与细心,至关重要。最忌浮于事,遇到问题要仔细分析,千万不可抱怨。作为软件出身的傻大个,竟
基于opencv的图像分析,PID算法,串口发送,单片机接收,输出脉冲继而控制步进电机转动
基于opencv的图像分析串口发送,单片机接收,输出脉冲继而控制步进电机转动 mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include #include #include "imagebuffer.h"#include "wlinkusbcamera.h"using namespace c
51单片机串口通讯的实现.
在串口通讯实际操作里面往往串口还要和电脑上的上位机软件进行交互,实现电脑软件发送不同的指令,单片机对应执行不同操作的功能,这就要求我们组织一个比较合理的通信机制和逻辑关系,用来实现我们想要的结果。我们发的数据往往是一组(一帧)数据,那么我们是如何判断一段数据有没有接收完呢?所以我们需要写一个代表一组(一帧)数据接收完。下面代码会贴出一个void UartDriver1()这个函数。可以参考里面函数...
串口通信下的int float型数据的处理和发送
 在做下位机通信时往往会用到串口,包括下位机将数据传输给上位机,或者是下位机与下位机之间进行数据传输,这时候就会遇到发送数据的问题,单片机通过串口发送数据时往往是一次一个字节(8位),如果传输char(8位)型数据则很好办,只需要直接发送就可以了,但是在发送int型数据和float型数据时就会稍微有些复杂。    下面就以常用的8位单片机89c51为例来进行说明。    当发送int型或long型...
串口发送不同类型数据方法
模拟串口数据传递 (参考了一些网友的思路,在此表示感谢~) 需要注意的是: 对于无符号数来说,左移和右移都是用的逻辑移位,即左移低位空出的补0,右移高位空出的补0; 对于有符号数来说,用的是算术移位,左移多出的会移进符号位,右移在gcc编译器下是算术右移,即空出的高位补符号位。 详细可参考此处:C语言 有符号数和无符号数的移位运算 #include&lt;stdi...
求教:VARIANT类型怎么用
我用MSComm控件做串口通信时接收到的数据是VARIANT类型,请问这个数据类型应该怎么用呢?怎样转换成CString类型呢?
树莓派使用uart串口与串口设备通信
本文转自:http://990487026.blog.51cto.com/10133282/1758182 树莓派硬件版本: 二代B+ 树莓派系统版本 1 2 3 4 5 6 root@raspberrypiroot@raspberrypi:~# lsb_release -a No LSB modules are available
C++变体数据类型—— VARIANT
百度百科:Variant  音标 Phonetic symbol   [] 词性及解释 Part of speech and defination   n. 变体, 异体  a. 不同的, 有差别的  【计】 变体型  【化】 变体  【医】 变异的; 变异体, 变型, 变种  Variant 数据类型是所有没被显式声明(用如 Dim、Private、Public 或 Static等语句)
一个简易的51单片机串口接收和发送程序
/********************* 程序功能:接收上位机发过来的一个字符串,然后把该字符串发送给上位机, 字符串必须以!结尾 **********************/ #include #define uchar unsigned char #define uint unsigned int sbit LED = P2^7; uchar flag = 0; uchar ind
stm32f103之串口实验,串口相互通讯即用同一个单片机的串口1与串口3相互通讯
  串口1,串口3都接到电脑上,选上”Use MicroLIB”这是KEIL自带的一个简易的库,例如你用printf函数的时候,就会从串口1 输出字符串,直接默认定向到串口1。(此程序中两个波特率不匹配,接受会出错,在实践中要设置串口一致的波特率)以下是程序 #ifndef __USART_H//头文件 #define __USART_H #include &quot;stdio.h&quot; #in...
单片机串口超时接收机制
在使用单片机的时候串口是与外界通讯最常用的一种方法 在处理接收的时候超时处理是一种常见的方法。 参考代码如下: //串口0 中断函数 void UART0_Isr() interrupt 4 using 1 { if (TI) { busy0 = 0; TI = 0; ...
如何用C#的serialport类接收单片机发送的数据
为什麽下面的程序只能实现 发送数据而不能接收??、请问还有其他方法实现接收数据嘛/?若有好的建议请上传程序并写上注释。。谢谢 private void button1_Click(object sender, EventArgs e) { SerialPort serialPort1 = new SerialPort(); se
QT笔记(8)——Qt与51单片机串口通讯
工业控制中单片机与pc机通讯,常常通过串口通讯来完成,本次基于RS232通讯来完成的,硬件是普中的STC51单片机开发板;板子如下图: 不需要液晶显示器,自带的例子这里就不贴了,主要实验是Qt进行串口链接,发送数据,单片机判断发送的内容并做出反馈; 单片机程序是c语言写的,用keil编译,再下载到开发板上的,单片的程序如下: #include&amp;lt;reg51.h&amp;gt; //--声明...
C51单片机 串口通信RX&TX---适合初学
原料:keil、仿真软件、虚拟串口工具(群文件里的tools)vspdctl.dll记得覆盖 说明:串口中断允许位ES=1时,单片机一接收到数据或者发送数据就会进入串口中断函数(我认为是因为SBUF一有动静,便会触发到中断),所以单片机发送数据给上位机的时候,为了避免数据丢失,建议关闭串口中断ES=0。(这里看不懂,建议看完整篇文章,再回来看,应该看得懂了) 不要着急着操作,先粗略学习一下相关...
PIC 单片机遇到的串口接收问题
在使用PIC16F1825/9芯片的串口接收时遇到一个问题,就是当串口快速接收时容易出现串口假死的现象,也就是程序运行正常,串口发送也是正常的,但是串口就是不能接收数据。经查询PIC数据手册发现: PIC数据快速接收但是又未及时处理的情况下,容易出现接收溢出错误。 ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据怎么用机器学习 阿里人工智能鲁班怎么用