标题:
MSP430F5529LP P3.3,P3.4串口测试程序
[打印本页]
作者:
flechazo12
时间:
2021-8-6 10:38
标题:
MSP430F5529LP P3.3,P3.4串口测试程序
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)
2021-8-6 10:37 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
hanyiwei
时间:
2022-7-29 12:17
你好,请问你这个串口通信时发送字符串,是从电脑往单片机发送吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1