|
一个简单程序(UART),不晓得问题出在那里,请大家帮哈忙!
[复制链接]
以下代码是UART0操作:收到上位机的字符然后转送回去。结果是能收到,但是是错误的,如发 01 收到 C0,请大家看看是那里出错了,小弟刚开始用430。
/****************************************************
说明:串口测试程序
波特率:9600bps
****************************************************/
#include"msp430x16x.h"
#include"UartTest.h"
#include"initialize.h"
extern unsigned char chr;
void intiuart0(void)
{
// UCTL0&=~SWRST;
UCTL0=CHAR;
UTCTL0|=SSEL0;
UBR00=0x03;
UBR10=0x00;
UMCTL0=0x4A;
// ME1|=URXE0;
ME1 |= UTXE0 + URXE0; // Ena××e USART0 TXD/RXD
IE1 |= URXIE0; //允许接收中断
P3SEL|=0X30;
P3DIR|=BIT34; //设置为输出
P3DIR&=~BIT35; //设置为输入
_EINT();
}
/**************
串口中断服务
**************/
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx(void)
{
while ((IFG1 & UTXIFG0) == 0); // USART0 TX buffer ready?
chr = RXBUF0;
TXBUF0 = chr;
}
|
|