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