發新話題
打印

請問F380的UART1的設定

請問F380的UART1的設定

你好,我目前使用的是F380的MCU,欲透過UART1來傳送資料。

我的initial設定值:
我的UART1設定:

    SBRLL1    = 0x30;         //115200
    SBRLH1    = 0xFF;        //115200
    SCON1     = 0x10;
    SBCON1    = 0x43;

//----------------------------------------------------------------------

我的鮑率設定為115200
//----------------------------------------------------------------------
void UART_send(void)     //將值送出
{
        unsigned int i=0;
        for(i=0;i<=12;i++)
  {
        SBUF1=led_set2sbuf1
  }
}
//------------------------------------------------------------------------
void UART1_Interrupt (void) interrupt 16      //等待中斷
{
        If((SCON1&0x02)==0x02)
        {
                        SCON1=SCON1 & 0xfd;   //clear TI1
        }
}

奇怪的是,我用示波器從MCU TX看不到值傳出,甚至我直接在SBUF1填值(例如0xaa)
仍然看不到值送出,請問是否我哪裡設定錯誤??

TOP

再補充一下:
1. 我傳了12次,每次中斷都有進入
2. 但是SBUF1的值一直都是0x00,但也有可能是值已經傳送出去,將SBUF1清為0.但是我從示波器的MCU TX是沒看到
   資料傳出的。

TOP

void UART_send(void)     //將值送出
{
        unsigned int i=0;
        for(i=0;i<=12;i++)
  {
        while((SCON1&0x20) != 0x20);  // 1: Transmit Holding Register Empty - it is safe to write to SBUF1
        (請加這一行試試看)
        SBUF1=led_set2sbuf1
  }
}

TOP

發新話題