导航:首页 > 操作系统 > 单片机接收多字节

单片机接收多字节

发布时间:2025-01-28 22:11:29

㈠ 请问51单片机如何解决多字节串口接收问题

串口的收发可以用查询和中断两个办法来实现。
1、查询方法更适合于半双工机制,编写的思路简单,程序结构简单,在全双工通信中易出问题。
2、中断方法则更高效。你的程序把两种方法混搭使用,容易出错。

以你的程序为例,一旦收到首个23H字符,就停止在中断服务中for循环里面等待5个剩余字符。假设传感器只发了3个字符,你的程序就停止在for循环里面。
以你的程序为例改进,在中断服务接收中,每次接收中断只收1个字符,完成后退出。
void uart_interrupt(void) interrupt 4 using 0
{
static unsigned char i=0;
unsigned char buf;
if(RI==1)
{
buf=SBUF;
switch(i)
{
case 0:
if(buf==0x23)i=1;
break;
case 1:
case 2:
case 3:
case 4:
case 5:
buffer[i-1]=buf;
i++;
if(buf==0x23)
i=1;
if(i==5)
{
do_something_here(buffer);
i=0;
}
break;
default: i=0;break;
}
RI = 0; //RI清零
}
if(TI==1) TI=0; //TI清零
}
这样改符合你的思维习惯吗?实际串口协议解析与协议密切相关,用状态机做比较好。程序中i把它变成状态机的状态,思考一下,改改程序更佳。

㈡ 单片机给电脑发送一个字节的十六进制数,这个数该存放在什么类型的变量里呢

1。串口发送:单片机这里很简单:设好波特率后,只要一条MOV SBUF,A即可将累加器的内容(一个字节)送到串口。
2。数据格式:在单片机这里,全是以字节方式运行的,更大的数要多字节拼装
3。在VB中,串口接收要选用“字节”方式,不要用“字符串”方式,这样可以很好的和单片机配合。
4。在VB中,可以将字节数据转换为无符号整数。
5。如果数据仅限于字节(256之内),用刚才接收的字节就可以直接参加运算。0D5H即是213,超过一个字节的数值,由单片机传过来之后要拼装,比如(1A2BH)先传1AH,再传2BH,到VB中,将1AH(=26)乘以16(=416),再加上2BH(=43),其和等于459(=0X1CB)。
6。十六进制在单片机中用0ABH方式,在VB中用0xAB方式表示。

㈢ 51单片机数据类型转换 高分!

假如你的串口发送函数叫SendData,接收函数叫RecvData,参考如下代码

发送端:

intSendData(unsignedchar*pSendBuf,unsignedintnSendLen);
intRecvData(unsignedchar*pRecvBuf,unsignedintnBufLen);
voidmain(void)
{
floatf;
inti;
doubled;

SendData((unsignedchar*)&f,sizeof(float));
SendData((unsignedchar*)&i,sizeof(int));
SendData((unsignedchar*)&d,sizeof(double));
}

接收端:

voidmain(void)
{
floatf;
inti;
doubled;

RecvData((unsignedchar*)&f,sizeof(float));
RecvData((unsignedchar*)&i,sizeof(int));
RecvData((unsignedchar*)&d,sizeof(double));
}

宗旨就是,先取其他类型数据的地址,用&符号,然后把地址转换为unsigned char*型,就可以通过*(unsigned char)的方式或(unsigned char)[]的方式访问了,就这么简单,希望可以帮到你.

阅读全文

与单片机接收多字节相关的资料

热点内容
androidui入门书籍 浏览:739
单片机二进制文件加密 浏览:116
怎样给文件夹加上级目录 浏览:163
怎么给app加密苹果手机 浏览:191
安卓系统怎么修复 浏览:394
09款轩逸空调压缩机继电器在哪里 浏览:335
jodconverter源码 浏览:258
小米app免流是什么免流呢 浏览:359
车贷还完办理解压需要费用吗 浏览:180
草书字典pdf 浏览:69
理财app怎么看绑的银行卡号 浏览:106
互斥微命令 浏览:882
linux扫描病毒 浏览:328
文件夹中显示pdf内容 浏览:421
java数组题 浏览:232
铜制作文件夹 浏览:803
食安员app怎么下载证书 浏览:925
php时间戳最大值 浏览:595
ad文档加密 浏览:404
phpini上传大小 浏览:935