lzemian-n

串口发送:

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);
    }
}
Usart_SendString
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);
    }
}
UsartPrintf

串口接收:

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;
    }
}     
USART1_IRQHandler

 

分类:

技术点:

相关文章:

  • 2022-01-09
  • 2021-12-23
  • 2022-01-02
  • 2021-12-01
  • 2022-12-23
  • 2021-12-23
  • 2021-06-07
  • 2021-12-31
猜你喜欢
  • 2021-12-23
  • 2021-05-26
  • 2021-12-22
  • 2022-12-23
  • 2021-04-04
  • 2022-02-24
  • 2021-11-20
相关资源
相似解决方案