• XON/OFF


    #define XON 0x11
    #define XOFF 0x13查找ASCII码表,这两个对应的是DC1(设备控制1)和DC3(设备控制3)

    X/ON和X/OFF为开启和关闭发送器的信号。X /ON的实际信号为ASCII的Ctrl-Q键盘组合的位组合,X/OFF信号为Ctrl-S字符。在为计算机操作系统定义调制解调器时,可能需要用 XON/XOFF或CTS/RTS来指定流控制的使用。在发送二进制数据时,XON/XOFF可能不能识别,因为它被译成了字符。

     1 #define XON  0x11    /*Ctrl-Q*/
     2 #define XOFF 0x13 /*Ctrl-S*/
     3 
     4 void Xon_Xoffsend(unsigned char *buf,unsigned char len)
     5 {
     6     static unsigned short int NbrDataToTransfer =len;
     7     
     8     while(USART_ReceiveData(USART1)!=XON);
     9     while(NbrDataToTransfer--) 
    10     {        
    11         USART_SendData(USART1,TxBuffer[TxCounter++]);
    12         while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); //等待发送结
    13         if (USART_ReceiveData(USART1)==XOFF) 
    14         {
    15             while(USART_ReceiveData(USART1)==XON); 
    16         } 
    17     }
    18 }
    19 
    20 void RTS_CTS(void)
    21 {
    22     if (接收缓冲区为空) 
    23     {
    24         RTS =0 ;/*从机查询if(CTS ==0)则从机可以发送,否则停止发送*/
    25     }
    26     else 
    27     {
    28         RTS =1 ;
    29     }
    30     if (CTS ==0) /*由从机复位和置位*/
    31     {
    32         Mast_send;
    33     }
    34     else 
    35     {
    36         Mast_sendStop!;
    37     }
    38 }
    View Code

    RTS/CTS:

      用在RS232中为控制收发方向;用在协议中或UART中是硬件流控,https://www.cnblogs.com/zurphy/p/4910847.html

    没有串口控制器,用中断和普通IO口即可实现RTS与CTS功能。

    RTS用GPIO实现,串口就绪准备接收数据拉低电平,串口停止接收拉高电平

    CTS(是否可以发送数据,低电平有效)用中断实现,检测到低电平,将串口数据发送出去,检测到高电平则保留串口数据直到检测到低电平为止。

    硬件流控:

      单片机   设备

      RTS     ->CTS

           CTS     <-RTS

    扩展 ISP一键下载电路分析https://blog.csdn.net/hola_ya/article/details/81323743

  • 相关阅读:
    monkey事件简介
    Monkey简介
    Package与Activity简介
    adb 命令
    安卓模拟器简介
    iis重启的几种方法
    window下安装FTP服务器
    防止dedecms注入文件挂马的解决方法
    织梦漏洞可疑PHP文件/article文件夹
    织梦Dedecms系统可疑文件include/filter.inc.php扫描出漏洞,该如何解决?
  • 原文地址:https://www.cnblogs.com/jieruishu/p/7081116.html
Copyright © 2020-2023  润新知