导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[转帖]XON / XOFF UART流量控制[liufengzhong]

 *第50942篇: [转帖]XON / XOFF UART流量控制

  
楼 主:liufengzhong 2014年9月2日23:58
 [转帖]XON / XOFF UART流量控制
大家好, 我的工作与需要从XMOS器件转移higth高速串行数据到主机的一个项目。 我用的模块快速UART()prensent在gihub资源库, 我想实现一个串行XON / XOFF软件流控制,从XMOS器件将数据传输到主机PC。


我写了下面的代码,但似​​乎不能很好地工作。

//Send buffer data to UART
void SendToSerial(streaming chanend DataFromFIFO, streaming chanend DataFromHostPC, streaming chanend DataToHostPC) {
    unsigned int     rx;
    unsigned char  XON = 1;
    unsigned char     RxFlow;    
    
    while(1){
        select {
        // xon/xoff char received from PC
        case DataFromHostPC:>   RxFlow:

            if ( RxFlow == XOFF_CHAR){
                XON = 0;
            }
            if ( RxFlow == XON_CHAR ){
                XON = 1;

            }
            break;
            
        // data from fifo to be sent over uart to the host pc
        case DataFromFIFO :>   rx:

                // Checking if the transmission must be stopped
                while( XON == 0 ){
                    DataFromHostPC:>  RxFlow; // wait PC command

                    if ( RxFlow == XON_CHAR ){
                        XON = 1;
                    }

                }        // wating xon char ok

                DataToHostPC   <: rx;
                break;


        }
    }

}

In main, i have:

    par {
        GetFromFIFO(DataFromFIFO);                                        //  Get data from fifo
        HandleUart(DataFromFIFO,DataFromHostPC,DataToHostPC);            //     Send data to UART
        ReceiveXOFF(DataFromHostPC);                                    // Get data received from PC via UART
        SendToHost(DataToHostPC);                                        //     Send data to UART
    }


检查用示波器,当XOFF字符是由主机PC发送的串行线,数据不会停止。问题出在哪里?

如何正确实施XON / XOFF软件流控制?是否有任何示例代码?

提前致谢。


回答:

讨论:


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:[求助]关于AVR单片机的问题2

[下一篇主题]:[转帖]什么是SPI启动闪存配置?