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

stm32 硬件流控有什么作用

mr_liu 2017-09-26 浏览量:1315
stm32 硬件流控有什么作用?
-1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案

其他答案 数量:5
  • 串口流控:https://baike.baidu.com/item/串口流控/2733036?fr=aladdin
    • 发布于2017-09-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 硬件流:RTS/CTS  (Request To Send/Clear To Send)即请求发送/清除发送协议,用于半双工时的收发切换,半双工的意思是说,发的时候不收,收的时候不发。
    • 发布于2017-09-27
    • 举报
    • 评论 0
    • 0
    • 0

  • USART亦可模擬RS-232通訊。RS-232原本的設計用意,是讓電腦能對數據機、印表機、資料儲存裝置等電腦周邊設備做資料交換。但是RS-232的缺點較多(接孔過大、設備能源消耗太快、資料傳輸速率低),目前的電腦漸漸都淘汰掉這種接孔,並用USB-RS232轉換器做為替代。現今RS232介面則廣泛使用於工業設備、科學儀器及網路設備。

    USART使用modem modes時,會變成雙線半雙工通訊(UART)。通訊流控制則由RTS-CTS負責,也因此同時間點只能有一方傳送資料。

    利用nCTS跟nRTS控制TX、RX是否再傳送或接收data。 可個別設定USART_CR3的RTSE以及CTSE為1,藉此允許RTS或CTS flow control。

    hardware_control_2usarts.png

    如果開啟RTS flow control(要把RTSE設為1),nRTS會被拉至低電位,直到USART接收器準備好要接收下一筆資料才會拉高。如果接收器的暫存器滿了,會先把nRTS拉至高電位,告知另外一端的傳送器在傳完這個資料frame之後,應該要停止傳送資料。

    rst_flow_control.png

    如果開啟CTS flow control(要把CTSE設為1),在傳送器要傳送下一筆資料frame之前,會先去檢查nCTS是否有值輸入。如果nCTS被拉至低電位,那麼下一筆資料會立即被送出(假設資料已經先在Transmit Data Register準備好了,也可說成TXE=0),否則不會進行傳送。如果在傳送資料的過程中,nCTS被拉至高電位,那麼會先把剩下該傳的資料先傳完,再停止傳送。

    如果CTSE被設定為1,那麼在nCTS有值輸入時,CTSIF狀態會自動地被硬體設立,表示該時間點接收器是否已準備好下一次的通訊。若有開啟USART_CR3的CTSIE(=1),則會產生interrupt。

    另外,在開啟CTS flow的情況下,傳送器在送出break時不會去檢查nCTS的狀態。

    cst_flow_control.png

    供參考

    • 发布于2017-09-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 硬件流控是为了避免一些异常错误设置的握手信号
    • 发布于2017-10-31
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :http://www.jst-mfg.com/product/pdf/eng/eLBT.pdf?5f9338d47ce6a 回复

相关问题

问题达人换一批

stm32 硬件流控有什么作用