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

* 80272: [转帖]XON / XOFF UART流量控制

   liufengzhong 
liufengzhong发表的帖子 

 [转帖]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软件流控制?是否有任何示例代码?

提前致谢。


回答:

讨论:


发表时间:2014年9月2日23:58:37

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:[求助]关于AVR单片机的问题2各位高手,小弟正在基于AVR单片机开发一款智能小车,正在开发超声波测
[下一篇帖子]:[转帖]什么是SPI启动闪存配置?我注意到在不同的开发工具包,该SPI闪存还有其他逻辑IC。 /P