sssdd 发表于 2017-8-18 15:23:41

本帖最后由 sssdd 于 2017-8-18 15:26 编辑

void Uart1_Init()
{
    UART1_DeInit();
    UART1_Init((u32)9600,
               UART1_WORDLENGTH_8D,
               UART1_STOPBITS_1,
               UART1_PARITY_NO,
               UART1_SYNCMODE_CLOCK_DISABLE,
               UART1_MODE_TXRX_ENABLE);//收发模式 波特率9600
    //UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);//串口接收中断
    UART1_Cmd(ENABLE);//串口打开
}
然后串口就开了。

    if((UART1->SR & 0x80)!=0)//TXE =1 发送缓冲空
    {//发送缓冲区空
      if(message_num)
      {
            message_num--;
            TXREG=Message_pool;
      }
      else
      {//消息队列结束
            if(Data_recived)
            {//消息: Got Data!
                Data_recived=0;
                message_num=10;
                Message_pool='G';
                Message_pool='o';
                Message_pool='t';
                Message_pool=' ';
                Message_pool='D';
                Message_pool='a';
                Message_pool='t';
                Message_pool='a';
                Message_pool='!';
            
            }
            else if(OK_flag)
            {//消息: Trans Ok
                OK_flag=0;
                message_num=10;
                Message_pool='T';
                Message_pool='r';
                Message_pool='a';
                Message_pool='n';
                Message_pool='s';
                Message_pool=' ';
                Message_pool='O';
                Message_pool='K';
                Message_pool='!';
            }
      }
    }
主程序添加↑这段,于是当message_num不为0,数据池有数据的时候就发出去了。。
补一个宏定义。
//------------------------
#define TXREG UART1->DR

页: 1 [2]
查看完整版本: STM8L051F3串口调试不通