找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1300|回复: 1
打印 上一主题 下一主题
收起左侧

单片机串口中断,具体不知道如何描述

[复制链接]
回帖奖励 1 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次(中奖概率 50%)
跳转到指定楼层
楼主
ID:508977 发表于 2021-1-30 12:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这端代码是啥意思呀,好像是GPS和GSM数据接收,但是具体不知道如何描述。

void uart_int(void) interrupt 4 using 1                //串口接收中断函数         
{
    if(RI)
    {
        uchar ch;
        RI = 0;
        ch = SBUF;
        if (GPS_rx_flag == 0)
        {
            if ((ch == 'O') && (gsm_rev_okflag == 0))  //如果收到字符'$',便开始接收
            {
                gsm_rev_start = 1;
            }
            if (gsm_rev_start)
            {
                if (ch == 'K')
                {
                    gsm_rev_okflag = 1;
                    gsm_rev_start = 0;
                }
            }
        }
        else
        {
            if ((ch == '$') && (gps_flag == 0))  //如果收到字符'$',便开始接收
            {
                rev_start = 1;
                rev_stop  = 0;
            }
            if (rev_start == 1)  //标志位为1,开始接收
            {
                RX1_Buffer[num++] = ch;  //字符存到数组中
                if (ch == '\n')         //如果接收到换行
                {
                    RX1_Buffer[num] = '\0';
                    rev_start = 0;
                    rev_stop  = 1;
                    gps_flag = 1;
                    num = 0;
                }
            }
        }
    }
    if(TI)
    {
        TI = 0;
        busy = 0;
    }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:564486 发表于 2021-2-3 17:29 | 只看该作者
串口接收部分的,那些判断语句应该都是跟通讯协议有关系
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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