MSP430F4152串口操作 -
[导读]/**********************************************************************//* 名称:串口通讯功能:将接到的数据组后原封不动的发送出去*//*******************************************************************
/**********************************************************************/
/*
本文引用地址: http://www.21ic.com/app/mcu/201807/783365.htm
名称:串口通讯
功能:将接到的数据组后原封不动的发送出去
*/
/**********************************************************************/
#include
unsignedchari,ii,n;
unsignedcharRX[20]={0};
voidUART_init()
{
P6SEL|=BIT5+BIT6;//P6.5,6=USCI_A0RXD/TXD
UCA0CTL1|=UCSSEL_1;//CLK=ACLK
UCA0BR0=0x03;//32k/9600-3.41
UCA0BR1=0x00;//
UCA0MCTL=0x06;//Modulation
UCA0CTL1&=~UCSWRST;//**InitializeUSCIstatemachine**
IE2|=UCA0RXIE;//EnableUSCI_A0RXinterrupt
IE2&=~UCA0TXIE;
}
////////////////////////////////////////////////////////////////////////////////
voidIint_Port1(void)//端口P1_4和P1_5中断
{
P1DIR&=~BIT5;//设置为输入方向P1_4
P1SEL&=~BIT5;//设置为普通I/O口功能
P1IES&=~BIT5;//选择上升沿触发
P1IE|=BIT5;//打开中断允许
P1IFG&=~BIT5;//P2IES的切换可能使P1IFG.4置位,需清除
_EINT();
}
/////////////////////////////////////////////////////////////////////
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//StopWDT
FLL_CTL0|=XCAP14PF;//Configureloadcaps
Iint_Port1();
UART_init();
_BIS_SR(LPM3_bits+GIE);//EnterLPM0,interruptsenabled
}
////////////////////////////////////////////////////////////////////
#pragmavector=USCIAB0RX_VECTOR
__interruptvoidUSCIA0RX_ISR(void)
{
RX[i]=UCA0RXBUF;
i++;
if(RX[i-1]==0x68)
{
n=i;
i=0;
}
}
////////////////////////////////////////////////////////////////////////
#pragmavector=PORT1_VECTOR//外部中断中断入口
__interruptvoidP1_ISR(void)
{
if(P1IFG&BIT5)
{
P1IFG&=~BIT5;//多源中断,需靠软件清除P1IFG.5
for(ii=0;ii { UCA0TXBUF=RX[ii]; while(!(IFG2&UCA0TXIFG)); } } }
查看评论 回复
"MSP430F4152串口操作 -"的相关文章
- 上一篇:24. 汉字显示实验 -
- 下一篇:单片机的时钟周期机器周期 -