微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > msp430的一些常用的C语言控制程序---RS232

msp430的一些常用的C语言控制程序---RS232

时间:11-11 来源:互联网 点击:
//需要调试助手辅助才能观察到收或接的数据

#includemsp430x14x.h>
//
void OSC_Init(void);
void USATR0_Init(void);
//
void main(){
WDTCTL = WDTPW + WDTHOLD;
OSC_Init();
USATR0_Init();
_BIS_SR(GIE);//用调试助手可以检测,也可以结合按键观察到数据的传输
}
//
void OSC_Init(void){
BSCTL1 &= ~XT2OFF;//XT2振荡器开启
do //清OSCFault标志
{
IFG1 &= ~OFIFG;
for (i=0xFF;i>0;i--);
} while((IFG1&OFIFG));
BSCTL2 |= (SELM_1 + SELS);//MCLK = XT2CLK,SMCLK = XT2CLK
}
//
void USATR0_Init(void){
P3SEL |= (BIT4 + BIT5);//选择端口的第二功能
ME1 |= (UTXE0 + URXE0);//工作模式1,UART0 使能
UCTL0 |= CHAR ;//发送字长,八位
UTCTL0 |= (SSEL0 + SSEL1);//选择时钟源,用于确定波特率发生器的时钟源,选择辅助时钟ACLK,子系统时钟SMCLK
UBR00 = 0x9F;//波特率选择寄存器低位
UBR10 = 0x01;//波特率选择寄存器高位
UMCTL0 = 0xB5;//波特率调整寄存器
UCTL0 &= ~SWRST;//USATR状态机初始化复位
IE1 |= URXIE0;//允许USATR中断
}
#pragma vector=UART0RX_VECTOR
__interrupt void uart0_rx(void){
while(!(IFG1 & UTXIFG0));//等待,看看接收寄存器里面是不是有数据
TXBUF0 = RXBUF0;//将接收过来的数据在发出去
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top