สอบถามเรื่อง dsPIC30f4011 เกี่ยวกับ UART แสดงค่าไม่ถูกต้องครับ

กระทู้คำถาม
ผมใส่ code ตามข้างล่างนี้ แล้วปรากฏว่า ค่าที่ออกมาทาง hyperterminal นั้นแสดงค่าไม่ถูกครับ ผมให้แสดง "1" แต่กลับออก ":"
ปล.ผมใช้ MPLAB X IDE v2.05 , c30 compiler 3.31 ,PICkit2 ในการเขียนครับ


[open_code]
#include <p30f4011.h>
#include "stdio.h"
#include "uart.h"
_FOSC(CSW_FSCM_OFF & XT_PLL4);
_FWDT(WDT_OFF);
#define Fcy 7372800.0
#define BAUD_RATE 115200.0
#define BAUD_RATE_GEN (Fcy/(16.0*BAUD_RATE))-1
char ch;
void init_uart()
{
    unsigned int configU1MODE, configU1STA, BaudRate;
      CloseUART1();
    configU1MODE = UART_EN    &UART_IDLE_CON& UART_DIS_WAKE &    UART_DIS_LOOPBACK &    UART_DIS_ABAUD & UART_NO_PAR_8BIT & UART_1STOPBIT;
    configU1STA  = UART_INT_TX_BUF_EMPTY &    UART_TX_PIN_NORMAL & UART_INT_RX_CHAR & UART_ADR_DETECT_DIS & UART_RX_OVERRUN_CLEAR;
    BaudRate = BAUD_RATE_GEN;
    OpenUART1 (configU1MODE, configU1STA, BaudRate);

}

void Uart1_PrintStr(unsigned char *str_uart)
{
    putsUART1((unsigned int *)str_uart);
    while(BusyUART1());
}

void _ISR _U1RXInterrupt(void)
{
    _U1RXIF = 0;
    while(DataRdyUART1())
            ch=ReadUART1();
}

void _ISR _U1TXInterrupt(void)
{
    _U1TXIF = 0;
}

void delay(unsigned long int count1)
{
    while(count1 > 0)
        count1--;
}
int main(void)
{
    init_uart();
    ConfigIntUART1(UART_RX_INT_EN & UART_TX_INT_EN & UART_RX_INT_PR2 & UART_TX_INT_PR3);

    while(1)
    {
            Uart1_PrintStr("1");
    }
    return 0;
}
[/close_code]
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่