MSP430F5529LP关于P3.3,P3.4串口测试
- #include <msp430.h>
- //#include <io430.h>
- void delay(int ms) //延时函数
- {
- int i,j;
- for( i=0;i<ms;i++)
- for( j=0;j<240;j++);
- }
- void send_buf(unsigned char *ptr) //发送字符串
- {
- while(*ptr != '\0')
- {
- while(!(UCA0IFG & UCTXIFG));
- UCA0TXBUF = *ptr;
- ptr++;
- delay(50);
- }
- }
- void main(void)
- {
- WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
- P4DIR |= BIT7; //初始化LED
- //串口初始化
- P3SEL |= BIT3+BIT4; // P5.6,7 = USCI_A1 TXD/RXD
- UCA0CTL1 |= UCSWRST; // **Put state machine in reset**
- UCA0CTL1 |= UCSSEL_1; // ACLK
- UCA0BR0 = 0x03; // 32768Hz 9600 波特率为9600
- UCA0BR1 = 0x00; // 32768Hz 9600
- UCA0MCTL |= UCBRS_3 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0 ok
- //UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16;
- UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
- UCA0IE |= UCRXIE; // Enable USCI_A1 RX interrupt 使能中断
- //S2 ok
- P2IE |= BIT1;
- P2IES |= BIT1;
- P2IFG &= ~ BIT1;
- P2REN |= BIT1;
- P2OUT |= BIT1;
- _EINT(); //中断使能
- // send_buf("串口通信\r\n");
- //send_buf("jecaa\r\n");
- while(1)
- {
- //send_buf("jecaa\r\n");
- delay(500);
- }
- }
- int A=0;
- #pragma vector = USCI_A0_VECTOR
- __interrupt void USCI_A0()
- {
- A++;
- switch(_even_in_range(UCA0IV,4))
- {
- case 0:break; // Vector 0 - No interrupt
- case 2: // Vector 2 - RXIFG
- // UCA0TXBUF = UCA0RXBUF; // 发送接收到的数据
- // 如需对发送信息进行处理修改此处
- break;
- case 4:break; // Vector 4 - TXIFG
- default: break;
- }
- }
- int b=0;
- #pragma vector = PORT2_VECTOR
- __interrupt void P2_ISR()
- {
- b++;
- if(P2IFG & BIT1)
- {
- while((P2IN & BIT1)==0);
- P4OUT ^= BIT7;
- send_buf("Pressed\r\n");
- }
- P2IFG &=~ BIT1;
- }
复制代码
代码下载:
串口测试.zip
(59.87 KB, 下载次数: 16)
|