|
unsigned char TBuff[8]={0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08};
unsigned char RBuff[8];
char Flag_Receive = 0;
void Uast_Init();
void USART_Send (unsigned char *pData,char n_byte);
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
beipin();
// NOKIA_GUI();
Uast_Init();
USART_Send(TBuff,8);
// _ENIT();
// __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
// __no_operation(); // For debugger
}
//串口初始化
void Uast_Init()
{
P3SEL = BIT3+BIT4; // P3.4,5 = USCI_A0 TXD/RXD
UCA0CTL1 |= UCSWRST; // **Put state machine in reset**
//UCA0CTL0 = 0x00; //校验位禁止,奇校验,低位优先,8位数据,一个停止位,UART模式,异步模式
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 6; // 1MHz 9600 (see User's Guide)
UCA0BR1 = 0; // 1MHz 9600
UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16; // Modln UCBRSx=0, UCBRFx=0,
// over sampling
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA0IE |= UCRXIE;
_EINT();
}
//串口发送数据不需要开发送中断
void USART_Send (unsigned char *pData,char n_byte)
{
char i;
for(i=0;i<n_byte;i++) //发送八个字节
{
UCA0TXBUF = pData[i];
while((UCA0IFG&UCTXIFG)==0); //判断:发送是否完成
// UCA0IFG &= ~(UCTXIFG);
}
}
// Echo back RXed character, confirm TX buffer is ready first
//串口接收需要开中断
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
switch(__even_in_range(UCA0IV,4))
{
case 0:break; // Vector 0 - no interrupt
case 2: // Vector 2 - RXIFG
while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX buffer ready?
// UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
RBuff[0] = UCA0RXBUF;
break;
case 4:break; // Vector 4 - TXIFG
default: break;
}
}
不知道怎么的在在串口调试助手上面就是看不到发送的数据,串口驱动都装好了的,求指导 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|