STM8S UART2串口接收字符串

2019-07-19 20:11发布

下面是用STM8S105K4芯片的UART2串口编写的串口发送字符串程序。用来发送字符串控制指令给蓝牙。现在遇到的问题是,我要接收保存蓝牙反馈回来的字符串,以便做下一步操作,应该怎么写接收函数??我看stm8s_uart2.c库函数里只有uint8_t UART2_ReceiveData8(void)这一个,谁有完整的接收字符串代码,发出来给参考下。不胜感激!!
/*********************************************************************************************************
    UART2串口初始化
*********************************************************************************************************/
void UartConfiguration(void)
{
  UART2_DeInit();
  UART2_Init(       //UART2 configuration
             (u32)115200,      //BaudRate = 115200 baud  115200 波特率115200
             UART2_WORDLENGTH_8D,   //Word Length = 8 Bits 字长8位
             UART2_STOPBITS_1,    //One Stop Bit 1位停止位
             UART2_PARITY_NO,    //No parity 无奇偶校验
             UART2_SYNCMODE_CLOCK_DISABLE, //UART2 Clock disabled 禁用UART2串口时钟
             UART2_MODE_TXRX_ENABLE  //Receive and transmit enabled 使能发送接收
            );

  UART2_Cmd(ENABLE); //启用串口
  UART2_ITConfig(UART2_IT_RXNE_OR, ENABLE);  //同意接收中断

}

/*********************************************************************************************************
    UART2串口发送一个字符
*********************************************************************************************************/
void UART2_SendChar(unsigned char c)
{
        while((UART2_GetFlagStatus(UART2_FLAG_TXE)==RESET)); //检测发送数据寄存器是否为空,UART1_FLAG_TXE代表发送寄存器为空
        UART2->DR = c;  //发送一个字符
        while((UART2_GetFlagStatus(UART2_FLAG_TC)==RESET));  //检测发送是否完成,UART1_FLAG_TC代表发送完成标志
}


/*********************************************************************************************************
    UART2串口发送字符串指令
*********************************************************************************************************/
void UART2_SendCommand(unsigned char *s)
{
        while (*s != '')  // 表示字符串结束标志,通过检测是否字符串末尾
        {
                UART2_SendChar(*s);
                s++;
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。