这个matlab代码做了什么以及我应该如何实现它

时间:2014-04-11 00:37:52

标签: serial-port matlab

我买了一个DIY项目,它有这个编码可以有人解释说这个代码做了。我知道C和C ++之前没有使用过MatlaB。  该项目是使用AT命令读取短信,然后通过avr工具包处理它 因为我不知道matlab编程我需要了解这个特定代码做了什么以及如何在matlab中实现它,因为我得到一个错误说(undefined bluetooth)

while(1)
    flag1=0;
    flag2=0;
    i=0;
    j=1;
    count=0;
    fwrite(bluetooth,65)
    fwrite(bluetooth,84)
    fwrite(bluetooth,43)
    fwrite(bluetooth,67)
    fwrite(bluetooth,77)
    fwrite(bluetooth,71)
    fwrite(bluetooth,76)
    fwrite(bluetooth,61)
    fwrite(bluetooth,34)
    fwrite(bluetooth,82)
    fwrite(bluetooth,69)
    fwrite(bluetooth,67)
    fwrite(bluetooth,32)
    fwrite(bluetooth,85)
    fwrite(bluetooth,78)
    fwrite(bluetooth,82)
    fwrite(bluetooth,69)
    fwrite(bluetooth,65)
    fwrite(bluetooth,68)
    fwrite(bluetooth,34)
    fwrite(bluetooth,13)
    a=fread(bluetooth,1)
    if(a==13)
        a=fread(bluetooth,1)
        if(a==10)
            28
            while(flag1==0)
                a=fread(bluetooth,1)
                if(a==79)
                    count=count+1
                end
                if(a==75)
                    count=count+1
                end
                if(a==10)
                    flag1=1
                end
            end
        end
    end
    if(count~=2)
        while(flag2==0)
            a=fread(bluetooth,1)
            i=i+1;
            if(j>0)
                fopen(pc_uc)
                j=j-1;
            end
            fwrite(pc_uc,a)
            if(a==13)
                flag2=1
            end
        end
        for i=1:7
            a=fread(bluetooth,1)
        end
        fclose(bluetooth)
        fclose(pc_uc)
        fopen(bluetooth)
    end
end

1 个答案:

答案 0 :(得分:0)

这不是很漂亮的代码,但据我所知,这就是它的作用:

  1. 发送SMS command

    AT+CMGL="REC UNREAD"
    
  2. 检查回车,<CR>(ASCII代码13)

  3. 检查换行,<LF>(ASCII代码10)
  4. 读入字符,直到它读入OK<LF>
  5. 如果没有收到OK,请将数据复制到pc_us(不知道那是什么),直到它到达<CR>中的bluetooth,再读一些来自bluetooth的字节(清除缓冲区?),然后关闭并打开bluetooth