Em dùng ds4011 truyền thông với PC. Trên PC sử dụng tiện ích HyperTerminal của Win.
- Dùng thạch anh 8MHz, PLLx4. Không hiểu sao chương trình của em ko chạy. Chương trình em bỏ chỉ dẫn đi cho dễ nhìn. Ai có mạch chạy thử giúp em chương trình này. Chương trình như sau
Trích:
#include <p30fxxxx.h>
#include <ports.h>
#include<uart.h>
//------- Chuong trinh con phuc vu ngat TX UART1 ----------------------------------
void _ISR _U1TXInterrupt(void)
{
IFS0bits.U1TXIF = 0; // Clear TX interrupt flag
}
//------- Chuong trinh con phuc vu ngat RX UART1 ----------------------------------
void _ISR _U1RXInterrupt(void)
{
IFS0bits.U1RXIF = 0; // Clear RX interrupt flag
}
//------- Thiet lap cac thong so cho UART1 -----------------------------------------
void Uart1Init ()
{
unsigned int baud;
unsigned int U1MODEvalue;
unsigned int U1STAvalue;
CloseUART1();
ConfigIntUART1(UART_RX_INT_EN &
UART_RX_INT_PR5 &
UART_TX_INT_EN &
UART_TX_INT_PR3);
baud = 51; // baud 9600
U1MODEvalue = UART_EN & UART_IDLE_CON &
UART_RX_TX &
UART_DIS_WAKE & UART_DIS_LOOPBACK &
UART_DIS_ABAUD & UART_NO_PAR_8BIT & UART_1STOPBIT;
U1STAvalue = UART_INT_TX & UART_TX_PIN_NORMAL &
UART_TX_ENABLE &
UART_INT_RX_CHAR & UART_ADR_DETECT_DIS &
UART_RX_OVERRUN_CLEAR;
OpenUART1(U1MODEvalue, U1STAvalue, baud);
}
int main(void)
{
Uart1Init;
while(1)
{
char Txdata[] = "Chao Pic Viet Nam";
putsUART1 ((unsigned int *)Txdata);
while(BusyUART1());
return 0;
}
}
|