MSP430F5529学习笔记(五)——串口|UART

        我们在使用MSP430的时候大家会发现插上usb线后电脑上有两个端口标识,那么在进行串口通信时选择哪个呢。其实如图所示,上面的端口是用来进行串口通信的,下面的则是用来进行程序的下载,大家在使用的时候多加分辨即可。

         当然熟悉单片机操作的人可以通过经验判断图中标注UART1的即为串口通信端口,接下来我们就进入MSP430F5529串口的学习,通过学习串口我们可以更好的进行上下位机通信,主从机交互等场景的信息交互。

串口端口配置

        与使用其他功能一样我们首先对串口进行基础的配置,如果想使用电脑USB下载线进行与电脑的通信请选择P4.4,P4.5端口(UART1),如使用排针IO的串口请选择P3.4,P3.5端口(UART0),在对应配置时需更改寄存器编号实现对应的功能,以下以UART1为例,如果想使用UART1,可使用板载usb口或在下载完成后拔掉仿真电路与核心电路间的跳线帽,使用跳线引出:

    P4SEL    |=  BIT4+BIT5 ;// USCI_A1 TXD/RXD
    UCA1CTL1 |=  UCSWRST;// 初始化所有的 UCSI 寄存器,包括UCA0CTL1
    UCA1CTL1 |=  UCSSEL_1;// ACLK
    UCA1BR0   =  0x03;// 32768Hz 9600 波特率为9600
    UCA1BR1   =  0x00;// 32768Hz 9600
    UCA1MCTL |=  UCBRS_3 + UCBRF_0;// 低频调制+过采样调制
    UCA1CTL1 &= ~UCSWRST;// 初始化USCI状态机
    UCA1IE   |=  UCRXIE;//使能中断

串口信息的读取

        串口的读取在配置时首先开启UCRXTE中断,然后进入函数内通过:

(UCA1IFG)&(UCRXIFG)

  进行对中断接收信号的判断,以下为串口的读取:

#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
    UCA1IFG &= ~UCRXIFG;
    if((UCA1IFG)&(UCRXIFG));//接收
        c=UCA1RXBUF;
}

串口信息的发送

      串口的发送在配置时首先开启UCRXTE中断,然后进入函数内通过:

!(UCA1IFG & UCTXIFG)

  进行对发送信号的判断,以下为串口的发送:

//以串口1为例,发送字符串
void send1_buf_int(unsigned int *ptr) 
{
    while(*ptr != '\0')
    {
        while(!(UCA1IFG & UCTXIFG));
        UCA1TXBUF = *ptr;
        ptr++;
        delay(10);
    }
}

与蓝牙的通信

        蓝牙是经典的串口通信案例,通过蓝牙可以扩展出主从机,串口屏等一系列串口项目的代码操作,通过数据的收发和检测实现对应的操作,以下为MSP430与蓝牙的简单点灯程序参考:

#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
    UCA1IFG &= ~UCRXIFG;
    if((UCA1IFG)&(UCRXIFG));//接收
    {
    c=UCA1RXBUF;
    if(c == 'a')
           {
               P4OUT &= ~BIT7;
               P1OUT |= BIT0;
           }
    else if(c =='b')
           {
               P1OUT &= ~BIT0;
               P4OUT |= BIT7;
           }
    }
    else 
        break;

    }
}
  • 40
    点赞
  • 320
    收藏
    觉得还不错? 一键收藏
  • 56
    评论
好的,我会为您提供关于 MSP430F5529 的 ADC12 学习笔记MSP430F5529 是德州仪器(Texas Instruments)公司推出的一款低功耗微控制器,它具有 12 位的模数转换器(ADC12)模块,可以用于采集模拟信号。 ADC12 模块具有多个配置选项和功能,下面是一些相关的学习笔记: 1. ADC12 基本配置:首先,您需要对 ADC12 进行基本的配置。这包括选择参考电压源、设置采样保持时间、选择转换时钟源等。可以通过配置控制寄存器(ADC12CTL0 和 ADC12CTL1)来完成这些设置。 2. 通道选择:ADC12 可以选择多个输入通道进行采样。您可以使用 ADC12MCTLx 寄存器来选择所需的输入通道,并进行相关的配置,如参考电压源、输入通道的输入方式(单端或差分)等。 3. 触发方式:ADC12 可以通过软件触发或外部触发进行转换。您可以使用 ADC12CTL0 寄存器来选择触发方式,并设置相应的触发源。 4. 转换结果:ADC12 转换后的结果可以通过 ADC12MEMx 寄存器进行读取。对于 12 位的转换结果,您可以直接读取 ADC12MEMx 寄存器的值。 5. 中断和DMA:ADC12 可以使用中断或 DMA 来处理转换完成后的结果。通过配置 ADC12CTL0、ADC12CTL1 和相关中断/ DMA 控制寄存器,您可以实现转换完成后的中断或 DMA 传输。 请注意,上述仅为一些基本的学习笔记MSP430F5529 的 ADC12 模块还有更多高级功能和配置选项。您可以参考 MSP430F5529 的用户手册和相关文档,以深入了解 ADC12 模块的更多细节和应用。 希望这些笔记能对您有所帮助!如果您对其他问题感兴趣,请随时提问。
评论 56
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值