This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430FR5994: 关于DMA实现UART通信。

Part Number: MSP430FR5994

我根据官方例程更改了一些配置想实现基于MSP430FR5994的UART发送数据,却发现串口助手接受皆为乱码。

以下为我更改后的代码。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "driverlib.h"
static char String1[] = { "Hello World\r\n" };
void main (void)
{
//Stop Watchdog Timer
WDT_A_hold(WDT_A_BASE);
GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);
PMM_unlockLPM5();
//P3.4 = USCI_A0 TXD
GPIO_setAsPeripheralModuleFunctionInputPin(
GPIO_PORT_P2,
GPIO_PIN0,
GPIO_TERNARY_MODULE_FUNCTION
);
EUSCI_A_UART_initParam param = {0};
param.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK;
param.clockPrescalar = 6;
param.firstModReg = 13;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 你好,不做更改例程是否可以通讯?

  • 您好,如果只是修改引脚(将例程中P3.3改为P2.0)和库函数名字(将例程中USCI_XXXX改为EUSCI_XXXX)以确保在MSP430FR5994中该例程可行的话,串口接收仍为乱码。

  • 如果是要使用uart,请参考该代码:

    https://dev.ti.com/tirex/explore/node?node=A__ACN5D3ILDAeVpt7cG-tbig__msp430ware__IOGqZri__LATEST

    你使用的例程不是FR5994的。

  • 你好,我知道例程不是FR5994的,我想修改后移植使用。请问有有通过DMA实现的UART事例代码吗。谢谢

  • 请问有有通过DMA实现的UART事例代码吗

    这个是没有的。

    修改引脚(将例程中P3.3改为P2.0)和库函数名字(将例程中USCI_XXXX改为EUSCI_XXXX

    可能在DMA和USCI寄存器上的配置会有所不同,请检查一下。

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <msp430.h>
    #include <stdint.h>
    #include "driverlib.h"
    static uint8_t data = 0x30;
    int main(void)
    {
    //
    WDT_A_hold(WDT_A_BASE);
    //
    CS_setDCOFreq(CS_DCORSEL_0,CS_DCOFSEL_0); // DCO12MHz
    CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1); // SMCLKDCOCLK
    // GPIO P1.0
    GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
    GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);
    // GPIO P2.0UART
    GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2, GPIO_PIN0,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    我将dma代码删除想要简单实现UART发送数据,但接受的数据仍为乱码.请问如何解决.