找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

新手求教c语言问题 这个字符存到数组的语句,不应该使用for循环吗

查看数: 2331 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-6-17 01:03

正文摘要:

请问这个字符存到数组的语句,不应该使用for循环吗?代码是从上到下执行,只有这么一句,不是只能存入一个字符吗?这段代码是中断程序中接收GPS发送的数据。求大神指点,

回复

ID:1074206 发表于 2023-6-17 19:01
每接收一个字节,都会产生中断,只不过是在底层处理了。都是有协议处理的
ID:213173 发表于 2023-6-17 16:18
/*************************************/
void Uart_Receive() interrupt 4
{
        static uchar ch=0;                //静态计数变量
        RI=0;                                        //接收中断请求标志位清0
        rev_buf[ch]=SBUF;                //接收到的数据串保存在缓存数组
        if(rec_buf[0]=='$')                //验证数据头,如果错误,被后续数据覆盖
        {
                ch++;
                if(rec_buf[ch-1]=='\n')//结束
                {
                        flag=1;                        //接收完成标志置1
                        ch=0;                        //计数变量清0
                }
        }
}
ID:883242 发表于 2023-6-17 16:03
字符串不定长,以\n作为结束标志,你又不知道具体长度怎么循环???
ID:908826 发表于 2023-6-17 15:39
这是属于单片机自身的问题了和C语言关系不大
ID:712097 发表于 2023-6-17 11:56
软硬结合,两手都要抓,要手都要硬,就能更好理解代码了。
ID:353115 发表于 2023-6-17 09:24
看来楼主对底层不了解。每接收一个字节数据,中断都触发一次,因此,当你意识到这个串口无法一次性识别一帧数据的时候,应该差不多明白了,需要用一个变量自加建立索引,来存储每个字节数据。
ID:879348 发表于 2023-6-17 08:19
先理解中断是啥概念,别一上来就看程序
ID:94031 发表于 2023-6-17 06:17
串口硬件收到一个字节,发出一个中断执行这段程序,字节存入rev_buf数组,数组标号+1,程序转入主程序,中断一次存一个,不用for。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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