串口给单片机发送数据格式问题!

AA 55 00 01 01 00 00这个指令目前是字符串,我应该怎样处理这个字符串之后发给单片机呢,求大神指点一下!

c#

2个回答

应该转换为byte[] ,
C#中这样写 byte[] bt=new byte[]{0xAA,0x55,0x00,0x01,0x01,0x00,0x00};
随后将这个数据写入串口

qq_37212381
qq_37212381 大头小头看向天空需要看下库存压力粗来粗来粗来粗来粗来吃
2 年多之前 回复
static byte[] ToBytes(string hexStr)
{
    string[] hexSplits = hexStr.Split('-');
    byte[] a = new byte[hexSplits.Count()];
    for (int i = 0; i < a.Count() - 1; i++)
    {
        a[i] = Convert.ToByte(hexSplits[i], 16);
    }
    return a;
}

// 调用方式
string strData = "AA 55 00 01 01 00 00";
byte[] a = ToBytes(strData.Replace(" ", "-"));

因为 BitConverter.ToString(a) 结果是用 - 作为分隔符的,所以统一替换了一下。
如果你无所谓,也可以直接用空格作为分隔符。

VIX1314
VIX1314 采纳错了,不好意思啊,代码我已经试过了,可以打开柜子锁了,太感谢了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
串口发送数据格式问题??
现有一字符数组,里面是16进制的数据,如下array="2e090027ff01045689"rn要求通过串口发送出去的是9个字节的16进制数据2e,09,00,27,ff,01,04,56,89rnrn该如何进行转换?
C#发送串口数据格式问题
波特率:9600 rn数据位:8位rn奇偶校验:偶校验,1位rn停止位:1位rn允许工作信号:AArn停止工作信号:BCrnrn那我发送的AA是不是可以这么写rncom.PortNum ="COM1"; //端口号rncom.BaudRate = 9600; //串口通信波特率rncom.ByteSize = 8; //数据位rncom.Parity = 2;//奇偶校验rncom.StopBits = 1;//停止位rncom.open();rncom.Write(Encoding.ASCII.GetBytes("AA"));rnrn在串口调试助手里选则16进制发送"AA"就可以,那我应该发那个呢?是AA还是0xAArn
串口发送数据格式
现在要用软件方式模拟方式向单片机的串口 发送数据.rn 就是我在程序中向一根线写数据(位)rn请问串口的数据线的格式定义是怎么.rn采用的是波特率是9600. 8位数据位. 1位停止位.rnrn比如说:我一要向该线写数据0xA5B6(10100101)(10110110)rn是不是这样的哦: rn数据位8个rn(A5) (B6) 停止位1位 rn1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1rnrn还是其他什么的哦...
单片机串口发送问题
UART串口接收与发送,使用了RDA,CTI中断...使用了一个大小为30字节的缓冲数组来存放...rn问题来了rn当我配置FIFO为8个字节的时候,结果是只能收到24个字节..后面的字节接收不到rn当我配置FIFO为14个字节的时候,结果是能正常收到30个字节..为什么?rnFIFO为8个字节的时候,上位机连续发送的时候rn第一次触发为RDArn第二次触发为RDArn第三次触发为RDArn第四次触发为RDArn... 一直接收完才对... rn谁知道是什么原因造成的不?
如何使用串口给单片机发送复位信号?
怎么给单片机发送一个复位信号进行复位。
C# 串口发送设置数据格式问题??
用SerialPort.write(); 发送数据格式:2A5100022Arn接收到的变为ASCII的数据,如何才能接收的数据跟发送的数据一样??
单片机的串口发送
[code=c]#includern#includernvoid Debug_put(unsigned char *s,unsigned char c)rnTMOD = 0x20;rnTH1 = 0xfd;rnTL1 = 0xfd;rnTR1 = 1;rnSM0 = 0;rnSM1 = 1;rnREN = 1;rnEA = 1;rnES = 1;rnTI = 1;rnprintf("%s%d",s,c);rnwhile(!TI)rn;rnTI = 0;rnTR1 = 0;rnES = 0;rnrnvoid main()rnDebug_put("123\0",4);rn[/code]rn很好理解 就是输出1234而已 rn为什么就是输出的值不对呢rn输出1024 为什么???
单片机串口发送数据丢失
我用的是瑞萨的单片机,用下面的函数单步执行时一切正常,在PC端用串口调试助手可以收到12个数据,但是直接执行这个函数时,PC端只能收到前10个字节,后两个数据收不到,这是怎么一会事?是硬件问题还是程序问题?rnrnrnrnvoid SendInventory()rnrn //Inventory[12]是外面定义的数组rn rn// SCI3_2.TDR=InventoryCommand[0];rn SCI3_2.SCR3.BIT.TE=1;//发送使能rn while(i<12)rn rn while(SCI3_2.SSR.BIT.TDRE==0)//等待发送完rn nop();//空语句rn if(SCI3_2.SSR.BIT.TDRE==1)rn rn SCI3_2.TDR=InventoryCommand[i];//发送一个数据,TDRE会自动置1rn i++; // SCI3_2.SSR.BIT.TDRE=0;rn rn rn
单片机串口发送数据帧
很少看到有资料写如何以中断的方式发送一帧数据,如果以等待的发送数据帧,对高速运行的单片机来说是很浪费时间的,下面就介绍一种使用中断方式发送数据帧,操作平台采用51 mcu
单片机串口发送程序
资料完整,详细的资源描述有机会获得我们的推荐,更有利于他人下载,赚取更多积分。
发送字符串给串口
比如要发送以下16进制数代表的字符串给单片机rn40 30 43 52 2C 32 9C 9A 0D 0E 0Frn上位机程序应该怎么写rn
发送数据格式统一的问题
我用socket发送数据,一帧的数据包括十六进制数据和一个字符串,我怎样用统一的数据格式发过去?数据用什么类型?能不能给出程序?各位帮忙,谢了先!
串口接收数据格式问题
最近在做vc串口通讯,现在数据发送与接收已经没问题了。倒是接收数据的时候,数据格式不知道如何处理。我接收到的数据是以字节为单位的16进制数,然后想把16进制数转为10进制并显示出来,可惜暂时还没想到该怎么转换,望大侠帮助一下!rnvoid CNet_monitorDlg::OnComm() rnrn VARIANT variant_inp;rn COleSafeArray safearray_inp;rn LONG len,k;rn CString temp;rn BYTE rxdata[512];rn CString strtemp;rn if(m_ctrlComm.GetCommEvent()==2)rn variant_inp=m_ctrlComm.GetInput();rn safearray_inp=variant_inp;rn len=safearray_inp.GetOneDimSize(); rn for(k=0;k
单片机控制串口数据发送
使用ARM:STM32F103控制RS485数据的发送,I2C通讯
单片机中串口发送程序
单片机中串口发送程序 晶振为11.0592,可配合串口调试程序,波特率选9600,十六进制显示勾上,程序开始从00递增发送字符. 做双机通信实验时候可用3根杜邦线连接2块开发板的p3.0 p3.1 和GNd,注意的 是p3.0和p3.1要交叉连接.
stm8s103f4p6单片机串口发送程序
stm8s103f4p6单片机串口发送程序,stm8s系列单片机具有诸多优点,其中串口的简洁明了是其中的一个优点,是低功耗应用的不二选择。
单片机串口发送和接收协议
适用于51单片机和STM32的串口接收和发送协议. 接收, 采用中断接收, 接收中断中支持两种接收协议. 采用预编译条件判断来选择.
DHT11单片机程序及串口发送
利用单片机 实现DHT11温湿度传感器的温度,和湿度值,通过单片机串口发送给PC串口终端,并显示出来
串口发送温湿度给PC
功能 :串口发送温湿度数据 波特率 9600 //硬件连接: P2.0口为通讯口连接DHT11,DHT11的电源和地连接单片机的电源和地,单片机串口加MAX232连接电脑
串口助手为何发送A给单片机回收不到A?
rn#include //包含特殊功能寄存器rn#include rn#define Uchar unsigned charrn#define Uint unsigned intrnvoid main(void)rn rnUint xdata rcvdata[1];rn//Uchar xdata trdata[2]=0x11;rn SCON = 0x50; //串口方式1,允许接收rn TMOD = 0x20; //定时器1 定时方式2rn TH1 = 0xFD; //11.0592MHZ 9600 波特率rn TL1 = 0xFD;rn TR1 = 1; //启动定时器rn while(1)rn rn // SBUF=0;rn rcvdata[0]=0;rn if(RI)rn rcvdata[0]=SBUF; //把接收到的数据保存rn RI=0;rn SBUF=rcvdata[0]; //把收到的数据通过串口发送出去rn while(!TI);rn TI=0;rn rn rnrnrnrn
在单片机中如何通过串口给仪器发送ASCII码!
在单片机中如何通过串口给仪器发送ASCII码!因为仪器串口协议已经有了,rn1.串口协议 rn(1)8个数据位,1个停止位,无奇偶校验; rn(2)波特率:2400、4800、9600、19200bps。 rn注意:修改了驱动器的波特率后,上位机也应修改为相同的波特率! rn2.指令结构 rn驱动器采用ASCII 码指令与上位机通讯。rnASCII码指令的构成: rn发送端:指令+(参数)+0x0D rn回应端:#+数据+0x0D+0x0A rn• 指令:仅使用字母的字符串; rn• 参数:指令后为ASCII码数字,有些指令后面无参数; rn• 结束符:发送端以0x0D(回车)结束,回应端以0x0D,0x0A(换行)结束; rn• 字符不分大小写; rn• 带有参数的指令如省略参数,则把参数识别为0; rn• 如果指令错误或参数超出规定的范围,则驱动器将返回ERR+’d’ rn d(范围):0~9,其中’1’表示数值范围错误,’2’表示无效指令,’3’表示当前位置不在位置范围之内,’4’表示设定速度超过最大速度限制(RS232速控模式); rnrnrn有没有好的思路探讨一下。最好是用C语言编写,纠结中啊。rn
单片机与串口助手通信时数据格式转化问题
一、概述在单片机与串口助手通信时存在很多问题,毕竟一个是通过硬件编程控制的,一个是通过软件编程实现的,两者之间并没有很大的兼容性。最基本的,硬件与软件中很多数据类型是不同的,这就给软件与硬件之间的通信造成了很大的困难。1.无线通信:举个我在做项目中遇到的问题,我们的项目有一部分需要实现手机端软件对硬件实现远程控制,而远程控制就必定涉到软件与硬件之间的通信。通信网络用wifi,用ESP8266-12...
pc和单片机串口通讯的数据格式问题
pc在和单片机进行串口通讯时,pc向单片机发送数据应该采用什么方式?要发送的数据已经存在指定文件tx.txt中了,内容为:B129F000A3B5,rnpc端的发送程序应该怎么写?使用串口通讯控件MSCOMM m_ctrlComm
单片机串口发送接收通信程序 V1.1.14
单片机串口发送接收通信程序 单片机串口发送接收通信程序 单片机串口发送接收通信程序
单片机C51串口中断接收和发送测试例程
完备的C51串口中断方式的接收和发送程序
单片机串口发送接收C代码
单片机90c516rd+串口发送与接收C源代码
单片机串口进行双机通信发送
本程序是用汇编语言写的单片机双机通信,经过实验检验可以应用,共享出来希望对需要的朋友有帮助
单片机串口发送程序 内有程序
单片机的串口发送程序 有详细的程序 供大家参考 希望一起共勉
STC单片机串口接收发送程序
基于STC单片机串口接收发送程序/**************************************************************************** * 程序名称:STC89C52RC单片机串口发送接收程序 * 实验条件:11.0592的晶振频率
关于单片机通过串口发送浮点数信息
最近弄一个小东西的时候,需要将AD采集的数据,通过串口发送上位机。由于还得在下位机部分显示出来,所以这个AD采集的数据转换之后发送到串口,比较容易点。但是问题来了,以前的串口,只有从GPS模块接收的信息是浮点类型外。其他的东西,都只是把字符类型或者字符串类型的数据发到串口。 查阅了一点资料,这里是资料的链接。 单片机将浮点数从串口发送出去: 1.http://www.51hei.com/bbs
MSP430单片机USART串口发送字符和字符串
在MSP430单片机的官方历程中有使用串口中断发送字符以及字符串的程序,但是移植性不高,我专门写了两个函数,用于发送单个字符合字符串,不需要使用中断,供大家参考。/********************************************** *程序描述:单片机的P3.4、P3.5作为串口发送字符和字符串 *作者 :Zhenhua Liu *时间 :2017.11.01
单片机C51串口中断接收和发送范例
用中断来实现串口通信//这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样
单片机串口发送的数据不连续
情况是:rn proteus仿真单片机串口收发数据,和pc的应用程序通信,有握手协议,期望的过程是:1、单片机发送一个开始信号(0x20),2、pc收到后回送一个确认信号(0x06),3、单片机收到确认后发送一串数据,4、pc将收到的这串数据显示(十六进制方式,若长度为1则不显示)。虚拟出一对串口进行仿真。rn 但是pc接收到数据有时候是连续,有时候不连续。用accessport观察的结果是,有时候一行一个数据,有时候一串数据被分成几串送出去,有时候却正常。导致的结果就是pc显示接收的数据不正常,rn仿真平台及工具:proteus7、Virtual.Serial.Ports.Driver.XP、accessportrnrn另外,怎么不能上传附件,,,,,详细情况留个邮箱,我发截图过去。。
"怎样能把CTRL+X通串口发送单片机"
怎么样才能把CTRL+X通过串口发送单片机,编程语言vc++!!!!
串口英文字符的发送问题
void send_char_com(unsigned char ch) rn rn SBUF=ch; rn while(TI==0); rn TI=0;rn rn这个原理上能发送英文字符吧,可是我发英文怎么出现乱码现象呢。发送asc码可以正常显示啊rnsend_string_com(unsigned char *str,unsigned int strlen) rn unsigned int k=0; rn do rn send_char_com(*(str + k)); rn k++; rn while(k < strlen);rn rn这个打印十六进制的数怎么转换啊?rn求大神指教啊????谢谢
evb的串口发送问题。
我用comm控件进行同计算机的通讯。pda接收没有问题,但发送时只能发送rnstring,为小于128的字符串,而不能发送可以大于128的byte 类型的rn数据,请问这个问题如何解决?rn
51单片机串口发送问题
为什么我这样不能发?那个TI不处理我至少应该收到一个啊?rn for(m=0;m<20;m=m+1)rn rn delay1(255); rn SBUF=123; rn
MTK串口发送问题
我想做个与 MTK 手机进行串口通讯的小工具,现在接收正常,发送没反应。rnrn初始化:rnrn DWORD style=WS_VISIBLE;rn if(m_MSComm.GetPortOpen()) //如果串口是打开的,则行关闭串口rn rn m_MSComm.SetPortOpen(FALSE);rn rn m_MSComm.SetCommPort(13); //选择COM13rn m_MSComm.SetInBufferSize(1024); //接收缓冲区rn m_MSComm.SetOutBufferSize(1024);//发送缓冲区rn m_MSComm.SetInputLen(0);//设置当前接收区数据长度为0,表示全部读取rn m_MSComm.SetInputMode(1);//以二进制方式读写数据rn m_MSComm.SetRThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件rn m_MSComm.SetSettings("115200,n,8,1");//波特率115200无检验位,8个数据位,1个停止位rn if(!m_MSComm.GetPortOpen())//如果串口没有打开则打开rn m_MSComm.SetPortOpen(TRUE);//打开串口rn写函数:rnrnvoid CCommDlg::Send() rnrn // TODO: Add extra validation here 发送消息rn int i,Count;rn CString m_SendData;rn m_SendData="AT\r";rn// GetDlgItemText(IDC_EDIT2,m_SendData);rn Count=m_SendData.GetLength();rn CByteArray m_Array;rnrn m_Array.RemoveAll();rn m_Array.SetSize(Count);rnrn for(i=0;i
串口serialport的发送问题
[code=VB.NET] Dim strSend(7) As Bytern strSend(0) = &H1rn strSend(1) = &H6rn strSend(2) = &H4rn strSend(3) = &HErn strSend(4) = &H0rn strSend(5) = &H5rn strSend(6) = &H29rn strSend(7) = &H3Arn SerialPort1.Write(strSend, 0, 8)[/code]rn很简单的一句 发送直接假死
EVC串口发送问题
rn最近做一个在WinCE5.0下用EVC和一个仪表进行串口通讯,以往在VB,VC下都可以,在EVC下搞了几天都不行,rnrn哪位做过类似的东西,帮忙指点一下,解决后立即给分!谢谢rnrnrn用VB这样mscomm1.output chr$(129)+chr$(129)+chr$(67)+..+chr(4)一共八个二进制数传出,不知道在EVC下如何?
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池