STM32串口收发
串口发送:
void Usart_SendString(USART_TypeDef *USARTx, unsigned char *str, unsigned short len) { unsigned short count = 0; for(; count < len; count++) { USART_SendData(USARTx, *str++); while(USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET); } }
void UsartPrintf(USART_TypeDef *USARTx, char *fmt,...) { unsigned char UsartPrintfBuf[296]; va_list ap; unsigned char *pStr = UsartPrintfBuf; va_start(ap, fmt); vsnprintf((char *)UsartPrintfBuf, sizeof(UsartPrintfBuf), fmt, ap); va_end(ap); while(*pStr != 0) { USART_SendData(USARTx, *pStr++); while(USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET); } }
串口接收:
void USART1_IRQHandler(void) { u8 Res=0; Res = USART_ReceiveData(USART1); USART1_RX_BUF[First_Int] = Res; First_Int++; if(First_Int >= USART_REC_LEN) { First_Int = 0; } }