打印
[MCU]

不知道是没有进中断还是什么问题

[复制链接]
889|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kangzj|  楼主 | 2020-10-12 23:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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;
    }
}

使用特权

评论回复

相关帖子

沙发
yufe| | 2020-10-12 23:57 | 只看该作者
一个简单的430程序,,为什么非要一定搞得跟32库函数一样那么复杂呢?

使用特权

评论回复
板凳
chuxh| | 2020-10-13 19:32 | 只看该作者
楼主用的哪个型号的msp?
官网有提供例程的,建议先运行下例程

使用特权

评论回复
地板
dingy| | 2020-10-13 19:38 | 只看该作者
随着msp430的功能越来越强大,用寄存器来操作会比较繁琐,官网提供了库,可以更快上手和方便使用

使用特权

评论回复
5
zyf部长| | 2020-10-13 19:55 | 只看该作者
波特率对吗?

使用特权

评论回复
6
yufe| | 2020-10-13 19:58 | 只看该作者
说不定是接线的问题!

使用特权

评论回复
7
langgq| | 2020-10-13 20:03 | 只看该作者
找个串口监视软件看看

使用特权

评论回复
8
huanghuac| | 2020-10-13 20:08 | 只看该作者
检查一下接线吧

使用特权

评论回复
9
wenfen| | 2020-10-13 20:13 | 只看该作者
线接的有问题

使用特权

评论回复
10
songqian17| | 2020-10-13 20:19 | 只看该作者
注意一下,初始化时串口的定义顺序

使用特权

评论回复
11
dingy| | 2020-10-13 20:23 | 只看该作者
估计是你的线接错了

使用特权

评论回复
12
pangb| | 2020-10-13 20:28 | 只看该作者
uart接PC机串口调试工具来看

使用特权

评论回复
13
morrisk| | 2020-10-13 20:32 | 只看该作者
使用的是什么接口呢?

使用特权

评论回复
14
pangb| | 2020-10-13 20:37 | 只看该作者
是不是没有共地?

使用特权

评论回复
15
wangzsa| | 2020-10-13 20:40 | 只看该作者
可以先把串口关了,一段时间后再打开

使用特权

评论回复
16
huwr| | 2020-10-13 20:44 | 只看该作者
用示波器抓一下信号线上的波形。

使用特权

评论回复
17
songqian17| | 2020-10-13 20:48 | 只看该作者
是不是RX和TX接反了。

使用特权

评论回复
18
chenho| | 2020-10-13 20:51 | 只看该作者
字符格式发送,然后看看是不是半角或者圆角字符

使用特权

评论回复
19
juventus9554| | 2020-10-13 21:04 | 只看该作者
串口一定接地

使用特权

评论回复
20
pengf| | 2020-10-13 21:07 | 只看该作者
串口软件可能有不一样呢

使用特权

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

本版积分规则

672

主题

7007

帖子

2

粉丝