5439|7

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何判断串口发送给单片机的数据是相同的呢? [复制链接]

问一个问题
假如我在串口调试助手上发送数据:pass word
如果单片机收到这组数据后,进入一个条件,
这里怎么样判断单片机收到这个数据呢?
怎么比较出发出来的数据就是pass word呢?
是不是要"p","a","s","s","w","o","r","d"每个字符判断相等呢?

串口发送:how are you?
单片机收到:how are you?
马上返回一句话给串口:fine,thank!

现在就是不知道怎么样写这程序,我的理解how are you?这些都是ascii码,是不是每个字母都判断一样才行呢

我用中断接收的,是不是一个字节中断一次的?

最新回复

把数据原封不动回传给发送方,进行异或处理,应该可以快速验证数据吧。   详情 回复 发表于 2022-8-24 10:09
 
点赞 关注

回复
举报

91

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
如果采用ASCII码发送,单片机可以把接收到的字符放入缓冲区,以回车结束,直接判断整个字符串就行.
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

上位机和下位机通讯时需要 握手协议

上位机和下位机通讯时需要 握手协议,简单的例子,比如说每次通讯有固定的起始位+固定的长度,单片机收到数据后进行判断处理
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
有没例子啊,不太懂啊
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
int print_data;

clear_wdt();

if((uart_temp > 32)||(erase_flag == 1))
{
erase_flag = 0;
uart_temp = 0;
}
snd[uart_temp++] = RXBUF0;

while (!(IFG1 & UTXIFG0)); // USART0 TX buffer ready?
cmd_flag = 1;
}

void up_pro(void)
{
uint8 *temp0,*temp1,*temp2,*temp3,*temp4,i;

if(cmd_flag)
{
cmd_flag = 0;
temp0 =(uint8 *) "e";
temp1 = (uint8 *) "r";
temp2 = (uint8 *) "a";
temp3 = (uint8 *) "s";
temp4 = (uint8 *) "e";
if ((snd[0] == *temp0)&&(snd[1] == *temp1)&&(snd[2] == *temp2)&&(snd[3] == *temp3)&&(snd[4] == *temp4))
{
erase_flag = 1;
UART0_SendNoStr(14,(uint8*)"erase success!");
for(i = 0;i<33; i++)
{
snd[i] = 0;
}
}
else
{
UART0_SendNoStr(20,(uint8*)"error!,again please!");
for(i = 0;i<33; i++)
{
snd[i] = 0;
}
}
}
}

我的是这样判断的,不知有没得改进呢
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 

学习了

 
 
 

回复

365

帖子

3

TA的资源

纯净的硅(初级)

7
 

这个先把接收的数据放到一个BUFF中,然后在对BUFF中的数据进行字符串比对就好了。

 
 
 

回复

210

帖子

17

TA的资源

一粒金砂(高级)

8
 

把数据原封不动回传给发送方,进行异或处理,应该可以快速验证数据吧。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表