标题: stm32串口发送中文乱码,发送英文和字数正常,麻烦各位大佬指点一下 [打印本页]

作者: jhjg45    时间: 2020-7-19 11:08
标题: stm32串口发送中文乱码,发送英文和字数正常,麻烦各位大佬指点一下
static void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch )
{

        USART_SendData(pUSARTx,ch);
               
        while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);        
}

void Usart_SendStr_length( USART_TypeDef * pUSARTx, uint8_t *str,uint32_t strlen )
{
        unsigned int k=0;
    do
    {
        Usart_SendByte( pUSARTx, *(str + k) );
        k++;
    } while(k < strlen);
}



void Usart_SendString( USART_TypeDef * pUSARTx, uint8_t *str)
{
        unsigned int k=0;
    do
    {
        Usart_SendByte( pUSARTx, *(str + k) );
        k++;
    } while(*(str + k)!='\0');
}


作者: 凌净清河    时间: 2020-7-19 22:58
因为中文的字符编码是多字节的,一个中文字符编译到程序里是以多个字节呈现的,而发送和接收都是一个字节一个字节来的,所以接收端按字节解析字符就会出现“乱码”的情况。
作者: 556cv    时间: 2020-7-20 00:05
因为中文的编码比英文的更复杂,有多个字节,一个一个显示看起来就比较乱




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1