• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

有关STC12系列单片机的串口2接收到数据的识别?

7b9441d54140b062 2018-05-25 浏览量:1165

网上只能查到

S2CON &= ~S2RI;     //Clear receive interrupt flag​


这个只是判断他是否接收到了数据


想要让他接收到1 应该怎么判断?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这是官网提供的例程代码,直接用if或者switch语句判断sbuf就可以了,

    把P0口改成接收数据的缓存如temp,详细的参考STC-SPI软件自带例程:

    /*----------------------------
    UART2 interrupt service routine
    ----------------------------*/
    void Uart2() interrupt 8 using 1
    {
        if (S2CON & S2RI)
        {
            S2CON &= ~S2RI;     //Clear receive interrupt flag
            P0 = S2BUF;         //P0 show UART data
            P2 = (S2CON & S2RB8);//P2.2 show parity bit
        }
        if (S2CON & S2TI)
        {
            S2CON &= ~S2TI;     //Clear transmit interrupt flag
            busy = 0;           //Clear transmit busy flag
        }
    }

    • 发布于 2018-05-25
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 两个方法,一个用串口接收空闲中断,可以参考STM32的例程,另一个方法比较简单但是比较蠢,就是每收到一个字节的数据判断一次。

    • 发布于2018-05-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 要去判断接收寄存器的内容,而不是判断寄存器的标志位
    • 发布于2018-05-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 有个寄存器是保存收到的数据的,这个是收到数据的标志
    • 发布于2018-06-10
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

有关STC12系列单片机的串口2接收到数据的识别?