OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4532|回复: 8

串口接收十六进制数并对比~~~求助!

[复制链接]

20

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-7-17
在线时间
30 小时
发表于 2014-9-23 15:04:00 | 显示全部楼层 |阅读模式
5金钱
想要实现的功能就是 从串口发送一组数据,比如  0105 0A01 D019   通过串口助手以十六进制的形式发送到单片机,单片机接收以后确认0A==0A    01==01   !!!不知道十六进制这里该怎么设定buffer,取出中间的数据!!!


  求助!!

最佳答案

查看完整内容[请看2#楼]

就是如果确定了数值之后再继续做操作!!   if ( buffer1==0x0A   &&  buffer2==0x01  )          {       .......     }
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-7-17
在线时间
30 小时
 楼主| 发表于 2014-9-23 15:04:01 | 显示全部楼层
就是如果确定了数值之后再继续做操作!!
  if ( buffer1==0x0A   &&  buffer2==0x01  )
    
    {
      .......
    }
回复

使用道具 举报

20

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-7-17
在线时间
30 小时
 楼主| 发表于 2014-9-23 15:04:01 | 显示全部楼层
回复【4楼】fly0000:
---------------------------------
     /*串口接收*/
    while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET){}
    RxData = USART_ReceiveData(USART2);

串口不是一次接收一个字符么~
回复

使用道具 举报

20

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-7-17
在线时间
30 小时
 楼主| 发表于 2014-9-23 15:04:01 | 显示全部楼层
定义的u8类型的数组,如果发送十六进制的话(比如:0105 0001 D019),调用buffer【1】的话直接就应该是  0x05
         对比的话就直接   if(buffer【2】==0x00 && buffer【3】==0x01)    
我之前考虑得太复杂了~~~结贴!!!!
回复

使用道具 举报

20

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-7-17
在线时间
30 小时
 楼主| 发表于 2014-9-23 15:35:11 | 显示全部楼层
接受十六进制数是什么机制呢?能不能接收一个转化为字符存在buffer里面~~~~我尝试一下!!
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2014-9-23 19:55:11 | 显示全部楼层
比对字符串,从你开始需要的进行接收!
设置一个tx
if((buffer[tx]=0x0a)&&(buffer[tx+1]=0x01))
  {
中间进行你的操作。
tx++;
结束符号if ((buffer[tx]=0x)&&(buffer[tx+1]=0x01))//这个是结束的标志,你一组数有头就有结尾
              结束。。。
 


    }
回复

使用道具 举报

20

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-7-17
在线时间
30 小时
 楼主| 发表于 2014-9-24 08:55:28 | 显示全部楼层
回复【4楼】fly0000:
---------------------------------
我这一组数据是一起发送过来的,我不知道从哪里开始接收啊!!您这个buffer是什么类型的?
谢谢!!!嘻嘻
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2014-9-24 09:20:39 | 显示全部楼层
回复【5楼】雨思小米粥:
---------------------------------
数组啊,我一般定义都是char,你需要从哪个开始接收,你就从哪个开始比对啊,比对成功了,下一个字符就是你需要开始接收的字符。。
串口是一次中断接收一个字符。
但是一直有数据,它就会一直接收的啊。
回复

使用道具 举报

20

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-7-17
在线时间
30 小时
 楼主| 发表于 2014-9-24 09:47:11 | 显示全部楼层
回复【7楼】fly0000:
---------------------------------
哎~~终于通了!!
   谢谢你啊!!!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-1 00:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表