arduino-串口通信后为什么两个字符串不同了……

问题描述

串口通信后为什么两个字符串不同了……

VB和aeduino中波特率都设置为9600,VB能够正常接收数据,看起来一样,但数据判断却不一样。。。。
VB中代码:
Dim buf$
Dim DR$
DR = Trim("DATA:CREADY")

buf = Trim(MSComm1.Input)
Label15.Caption = buf
Label16.Caption = DR

If LCase(buf) = LCase(DR) Then
MsgBox ("校准完成!")
Else
MsgBox ("校准失败!")
End If
buf = ""
End If

arduino中的代码:
char data = char(Serial.read());
if (data=='A')
{
//Serial.println(data);
delay(5000);
Serial.print("DATA:CREADY r n");
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);

按钮上方为串口接收的值,下方是VB中定义的值

解决方案

不知道你说的数据判断是什么,建议你用串口调试助手调试下。

时间: 2024-08-02 03:26:02

arduino-串口通信后为什么两个字符串不同了……的相关文章

经典算法面试题目-判断两个字符串是否是变位词(1.4)

题目 Write a method to decide if two strings are anagrams or not. 写一个函数判断两个字符串是否是变位词. 解答 变位词(anagrams)指的是组成两个单词的字符相同,但位置不同的单词. 比如说, abbcd和abcdb就是一对变位词. 也就是说,2个字符串,不管排列顺序如何,只要全部的单个字符能对应上,就是一对变位词! 该题目有两种做法: 时间复杂度为O(nlogn)的解法 由于组成变位词的字符是一模一样的,所以按照字典序排序后,两

《Arduino开发实战指南:机器人卷》一2.6 串口通信函数

2.6 串口通信函数 Arduino的串口通信是通过在头文件HardwareSerial.h中定义一个HardwareSerial类的对象serial,然后直接使用类的成员函数来实现的. 2.6.1 Serial.begin() Serial.begin函数用于设置串口的波特率,波特率是指每秒传输的比特数,除以8可得到每秒传输的字节数.一般的波特率有9600.19?200.57?600.115?200等. 2.6.2 Serial.available() Serial.available函数用来

51单片机串口通信时,接收到数据后为什么在while语句中将EA置1

问题描述 51单片机串口通信时,接收到数据后为什么在while语句中将EA置1 刚进入while语句时为什么要将EA置1??程序如下: #include #define uchar unsigned char uchar numaflagbenum; sbit beep=P2^3; void init(); void main() { init(); while(1) { if(flag==1) { EA=0; flag=0; TR0=1; if(a==1) { benum=4; } if(a=

串口通信-串口调试助手可以发送十六进制和字符串,如果发送的命令是ascii怎么办呢,

问题描述 串口调试助手可以发送十六进制和字符串,如果发送的命令是ascii怎么办呢, 字符串和ascii是不一样的把,怎么可以让单片机和一个支持串口通信的设备通信,哪个设备只能接收ascii,我用单片机发送给他的时候,应该是什么格式呢,ascii码一位即可,命令是23...9就这样的,单个数字 解决方案 ascii是字符编码,字符编码构成的序列称之为字符串.你作为上位机,把字符串分为一个一个字符逐个发给它就可以了. 解决方案二: int i = 2;char a = (char)('0' + i

虚拟机下的两Ubuntu系统无法实现串口通信

问题描述 虚拟机下的两Ubuntu系统无法实现串口通信 看到网上介绍虚拟机下两主机实现串口通信,今天按照百度上的一篇文章上介绍照着做,可是就是实现不了通信,有类似的情况的吗? 请大神降临 我是按照这篇文章做的http://wenku.baidu.com/link?url=cqUoJ1y7HVkCJ5EYadcn68oVVBp6Y2s2PusZ6f1znsEdgpAFbscKT_IYwwkKKv4jmo52HlSz43do6y-7vPDRS8nBof8v7aeNSXfN9rZCvJC 最后还有一点

算法 优化-编写一个函数,该函数将筛选出两个字符串参数中相同的字符,并按字母序进行排序后返回

问题描述 编写一个函数,该函数将筛选出两个字符串参数中相同的字符,并按字母序进行排序后返回 本题是某欧外企面试题,下面给出一个我当时的C语言解法,希望请教各位高手们更为高效的解法. char *func(const char *s1, const char *s2) { char temp[256];//ascii_table memset(temp, 0, sizeof(temp)); char *p1 = s1, *p2 = s2; int len = 0; for(; *p1!=0; p1

在串口通信中,给设备发送命令,DataReceive为什么要分两次来接收数据

问题描述 在串口通信中,给设备发送命令不管我Send几次,DataReceive为什么要分两次来接收数据,而且每次接收数据的长度不一样,为什么?求大神指点,谢谢了privatevoidserialPort_DataReceived(objectsender,SerialDataReceivedEventArgse){try{byte[]buffer=newbyte[serialPort.BytesToRead];serialPort.Read(buffer,0,buffer.Length);st

VisualBasic串口通信程序设计

1mscomm.vbx通信控件描述 mscomm.vbx通信控件可直接从vb的toolbox中加入窗体form,即可用其进行通信.若toolbox中无此控件,则用tools的customcontrols将mscomm.vbx从windows的system子目录中加入vb的toolbox中. 1.1通信方式 mscomm.vbx有2种不同的方式来处理和解决各类通信软件的开发和设计问题 1.事件驱动.它与c/c 写windows软件时的窗口回调函数类似,是1种功能强大的处理问题的方法.在实际工作中,

《单片机串口通信及测控应用实战详解》——6.3 PC端程序设计

6.3 PC端程序设计 单片机串口通信及测控应用实战详解 6.3.1 采用Visual Basic实现 1.程序界面设计 运行VB 6.0,创建标准的工程项目文件,设计程序窗体. (1)添加1个MSComm控件用于实现PC与单片机串口通信. (2)添加2个按钮控件CommandButton,用于输出指令和关闭程序. (3)添加3个文本控件TextBox,用于输入单片机地址.继电器状态和返回数据. (4)添加5个标签控件Label,用于显示文本框功能等. 2.属性设置 程序窗体.控件对象的主要属性