×
嵌入式 > 技术百科 > 详情

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

发布时间:2020-06-02 发布时间:
|
//需要调试助手辅助才能观察到收或接的数据

#include
//
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;//将接收过来的数据在发出去
}

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
分布式光纤温度传感器(DTS)系统的应用