标题:接收不明长度字符串问题
只看楼主
pyoldfox
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-12-24
结帖率:0
已结贴  问题点数:20 回复次数:5 
接收不明长度字符串问题
求助各大虾,本人最近用AVR单片机与一模块相连,每发送一条指令,模块返回不明长度字符串若干,程序的下一步必须判断这些字符串代表的意义.我用了一个中断子程序来接收返回字符,但是不知怎样才算接收完毕再执行下一条指令.返回的字符其中也可能带有空格.单片机每中断一次接收一个字符(8个字节),会不会下一条发送指令会打断单片机的中断接收?
如何判断返回字符接收完毕?
/******************接收中断子函数****************/
#pragma interrupt_handler uart0_rx_isr:26
void uart0_rx_isr(void)
  {   
   UCSR0B&=~(1<<RXCIE0);//关闭接收中断
   buffer[cunt]=udr0;
   cunt++;
   UCSR0B|=(1<<RXCIE0);//开启接收中断
  }
搜索更多相关主题的帖子: 下一步 单片机 字符串 子程序 如何 
2013-12-24 14:53
pyoldfox
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-12-24
得分:0 
子程序中的关闭接收中断会引起接收缓存中的数据丢失或覆盖吗
2013-12-24 14:54
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:10 
需要自己定义协议,然后自己解析串口接收的数据吧

总有那身价贱的人给作业贴回复完整的代码
2013-12-24 15:35
pyoldfox
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-12-24
得分:0 
模块返回的字符是有规定的,但是不同的指令返回不同的字符,无法定义协议,因为模块是不能编程的,不知有没有共同的结束符?
2013-12-24 15:49
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
串口只是负责接收、发送,协议是可以自己定的。你说的模块是不是有自己定制的协议?你必须知道,不知道的话肯定没法判断什么时候接收完毕

总有那身价贱的人给作业贴回复完整的代码
2013-12-24 15:57
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
得分:10 
观摩

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-24 16:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-425629-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.948492 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved