UART没有接收到数据

[复制链接]
1587|23
手机看帖
扫描二维码
随时随地手机跟帖
Snow7|  楼主 | 2018-7-30 20:53 | 显示全部楼层 |阅读模式
UART, se, IO, pi, TE
MSP430接收UART的数据,但是一直没有接收到,可是sscom又显示已经发送了数据。不知道是没有进中断还是什么问题。能否帮忙看看是不是代码哪里错了。
下面是代码
void UARTinit()
{
/* GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_P9,
       GPIO_PIN5
        );
  GPIO_setAsPeripheralModuleFunctionOutputPin(
          GPIO_PORT_P9,
       GPIO_PIN4
        );  */
  GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_P5,
        GPIO_PIN7
        );
    //Initialize USCI UART module
    //Baudrate = 9600, clock freq =8M  // 1.048MHz
    //UCBRx = 6, UCBRFx = 13, UCBRSx = 0, UCOS16 = 1
    USCI_A_UART_initParam param = {0};
    param.selectClockSource = USCI_A_UART_CLOCKSOURCE_ACLK;
    param.clockPrescalar =3 /*52*/;
    param.firstModReg = 0/*1*/;
    param.secondModReg = 3/*0*/;
    param.parity = USCI_A_UART_NO_PARITY;
    param.msborLsbFirst = USCI_A_UART_LSB_FIRST;
    param.numberofStopBits = USCI_A_UART_ONE_STOP_BIT;
    param.uartMode = USCI_A_UART_IDLE_LINE_MULTI_PROCESSOR_MODE;
    param.overSampling = USCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION/*USCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION*/;
    if(STATUS_FAIL == USCI_A_UART_init(USCI_A1_BASE, &param))
    {
        return;
    }
    //Enable UART module for operation
    USCI_A_UART_enable(USCI_A1_BASE);

    //Set USCI UART in dormant/sleep mode
    //USCI_A_UART_setDormant(USCI_A1_BASE);

    //Enable Receive Interrupt
    USCI_A_UART_clearInterrupt(USCI_A1_BASE,
                               USCI_A_UART_RECEIVE_INTERRUPT
                               );
    USCI_A_UART_enableInterrupt(USCI_A1_BASE,
                                USCI_A_UART_RECEIVE_INTERRUPT
                                );      
}

//******************************************************************************
//
//This is the USCI_A1 interrupt vector service routine.
//
//******************************************************************************
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCI_A1_VECTOR
__interrupt
#elif defined(__GNUC__)
__attribute__((interrupt(USCI_A1_VECTOR)))
#endif
void USCI_A1_ISR(void)
{
    switch(__even_in_range(UCA1IV,4))
    {
    //Vector 2 - RXIFG
    case 2:

        //USCI_A1 TX buffer ready?
      while(!USCI_A_UART_getInterruptStatus(USCI_A1_BASE,
                                             USCI_A_UART_TRANSMIT_INTERRUPT_FLAG)
             )
       {
            ;
        }
       // USCI_A_UART_resetDormant(USCI_A1_BASE);
        //Receive the data
        receivedData = USCI_A_UART_receiveData(USCI_A1_BASE);
       /* if(receivedData!=0x00) bspLedSet(BSP_LED_1);
        else bspLedSet(BSP_LED_2);*/

      // Send data back "echo"
      USCI_A_UART_transmitData(USCI_A1_BASE,
                                 receivedData
                                );
       // USCI_A_UART_setDormant(USCI_A1_BASE);



        break;
    default: break;
    }
}

相关帖子

android2| | 2018-7-30 21:08 | 显示全部楼层
一个简单的430程序,,为什么非要一定搞得跟32库函数一样那么复杂呢?

使用特权

评论回复
dirtwillfly| | 2018-7-30 22:37 | 显示全部楼层
楼主用的哪个型号的msp?
官网有提供例程的,建议先运行下例程

使用特权

评论回复
dirtwillfly| | 2018-7-30 22:38 | 显示全部楼层
android2 发表于 2018-7-30 21:08
一个简单的430程序,,为什么非要一定搞得跟32库函数一样那么复杂呢?

随着msp430的功能越来越强大,用寄存器来操作会比较繁琐,官网提供了库,可以更快上手和方便使用

使用特权

评论回复
kkzz| | 2018-8-1 22:09 | 显示全部楼层
波特率对吗?

使用特权

评论回复
hudi008| | 2018-8-1 22:09 | 显示全部楼层
说不定是接线的问题!

使用特权

评论回复
lzmm| | 2018-8-1 22:09 | 显示全部楼层
找个串口监视软件看看

使用特权

评论回复
minzisc| | 2018-8-1 22:09 | 显示全部楼层
检查一下接线吧

使用特权

评论回复
selongli| | 2018-8-1 22:10 | 显示全部楼层
线接的有问题

使用特权

评论回复
fentianyou| | 2018-8-1 22:10 | 显示全部楼层
注意一下,初始化时串口的定义顺序

使用特权

评论回复
xiaoyaodz| | 2018-8-1 22:10 | 显示全部楼层
估计是你的线接错了

使用特权

评论回复
febgxu| | 2018-8-1 22:11 | 显示全部楼层
uart接PC机串口调试工具来看

使用特权

评论回复
sdlls| | 2018-8-1 22:11 | 显示全部楼层
使用的是什么接口呢?

使用特权

评论回复
pixhw| | 2018-8-1 22:12 | 显示全部楼层
是不是没有共地?

使用特权

评论回复
febgxu| | 2018-8-1 22:12 | 显示全部楼层
可以先把串口关了,一段时间后再打开

使用特权

评论回复
kkzz| | 2018-8-1 22:12 | 显示全部楼层
用示波器抓一下信号线上的波形。

使用特权

评论回复
xiaoyaodz| | 2018-8-1 22:12 | 显示全部楼层
是不是RX和TX接反了。

使用特权

评论回复
hudi008| | 2018-8-1 22:12 | 显示全部楼层
字符格式发送,然后看看是不是半角或者圆角字符

使用特权

评论回复
fentianyou| | 2018-8-1 22:12 | 显示全部楼层
串口一定接地

使用特权

评论回复
lzmm| | 2018-8-1 22:12 | 显示全部楼层
串口软件可能有不一样呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

926

帖子

3

粉丝