STM32串口復用關系&printf重定義


  • 串口復用

  什么是普通功能輸入輸出?普通功能輸入輸出類似於:大廳<—>門<—>室外的關系,大廳只需要經過大門即可到室外,從室外經過門也可以到達大廳。
  什么是復用工功能輸入輸出?復用功能輸入輸出類似於:房間<—>大廳<—>門<—>室外的關系;從房間到室外,需要經過大廳,在經過大門才可以到達室外;從室外到房間,也需要經過大門。
  

  1) 當給TDR寄存器賦值時,數據會通過移位寄存器發送到芯片外部
  2) 接收數據時是一位一位的接收,當接收到8位數據時,數據會從“接收移位寄存器”搬到“接收數據寄存器”RDR。
  3) 每一個IO管腳的復用功能有很多,都是由“GPIO 復用功能寄存器 ”來進行選擇。
 
  

 

  • printf重定義

將usart 配置之后 更改fputc函數,直接在代碼中構建fputc函數。

int fputc(int ch, FILE *f){
    GPIO_SetBits(GPIOA, GPIO_Pin_11);//  接收

    while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);//數據從緩沖區拿走到移位寄存器  標志緩沖區為空

    USART_SendData(USART1,(u16)ch);

    while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);//數據送到TX總線上  標志發送完成


    GPIO_ResetBits(GPIOA, GPIO_Pin_11);//  發送
    return (ch);

}

 

 

 

PS.   STM32復用關系引用的是CSDN博主「Jahol Fan」的原創文章。

原文鏈接:https://blog.csdn.net/Jahol_Fan/article/details/78191173


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM