打印
[STM32F4]

UART没有接收到数据

[复制链接]
1285|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laozhongyi|  楼主 | 2018-8-11 19:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
UART, se, pi, IO, TE
接收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;
    }
}
沙发
Edisons| | 2018-8-11 19:35 | 只看该作者
为什么非要一定搞得跟32库函数一样那么复杂呢?

使用特权

评论回复
板凳
_gege| | 2018-8-11 19:38 | 只看该作者
官网有提供例程的,建议先运行下例程

使用特权

评论回复
地板
Mozarts| | 2018-8-11 19:40 | 只看该作者
用寄存器来操作会比较繁琐,官网提供了库,可以更快上手和方便使用

使用特权

评论回复
5
Listate| | 2018-8-11 19:45 | 只看该作者
楼主检查一下,说不定是接线的问题!

使用特权

评论回复
6
zhouhuanの| | 2018-8-11 19:46 | 只看该作者
找个串口监视软件看看。。。

使用特权

评论回复
7
bbapple| | 2018-8-11 19:52 | 只看该作者
注意一下,初始化时串口的定义顺序

使用特权

评论回复
8
sourceInsight| | 2018-8-11 19:53 | 只看该作者
估计是你的线接错了也有可能

使用特权

评论回复
9
boy1990| | 2018-8-11 19:55 | 只看该作者
uart接PC机串口调试工具来看

使用特权

评论回复
10
CallReceiver| | 2018-8-11 19:57 | 只看该作者
使用的是什么接口呢?是不是没有共地?

使用特权

评论回复
11
hfdy01| | 2018-8-11 19:59 | 只看该作者
可以先把串口关了,一段时间后再打开

使用特权

评论回复
12
xia00| | 2018-8-11 20:02 | 只看该作者
用示波器抓一下信号线上的波形。

使用特权

评论回复
13
shashaa| | 2018-8-11 20:02 | 只看该作者
是不是RX和TX接反了。

使用特权

评论回复
14
qiangweii| | 2018-8-11 20:04 | 只看该作者

字符格式发送,然后看看是不是半角或者圆角字符

使用特权

评论回复
15
feiqi1| | 2018-8-11 20:05 | 只看该作者
串口软件可能有不一样呢?、

使用特权

评论回复
16
androidbus| | 2018-8-11 20:09 | 只看该作者
这个单步调试看看是不是寄存器数值。

使用特权

评论回复
17
litengg| | 2018-8-11 20:10 | 只看该作者
或者地线和数据线相互换换

使用特权

评论回复
18
xiaoqizi| | 2018-8-13 13:14 | 只看该作者
电脑串口自身有没有问题

使用特权

评论回复
19
木木guainv| | 2018-8-13 13:17 | 只看该作者
接地了没有啊

使用特权

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

本版积分规则

111

主题

1388

帖子

0

粉丝