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.

[参考译文] TM4C129XNCZAD:如何启用 UART1?

Guru**** 2386460 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1318618/tm4c129xnczad-how-to-enable-uart1

器件型号:TM4C129XNCZAD

您好!

我尝试使用以下代码测试 UART1端口、但无法正常工作。

还有其他东西需要添加或修改吗?

#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/uart.h"

#define UART_MODULE     UART1_BASE
#define UART_GPIO_PORT  GPIO_PORTB_BASE
#define UART_GPIO_TX    GPIO_PIN_1
#define UART_GPIO_RX    GPIO_PIN_0
#define BAUD_RATE       115200


uint32_t ui32SysClock;


void UARTInit(void)
{
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

    GPIOPinConfigure(GPIO_PB0_U1RX);
    GPIOPinConfigure(GPIO_PB1_U1TX);

    GPIOPinTypeUART(UART_GPIO_PORT, UART_GPIO_RX | UART_GPIO_TX);

    UARTConfigSetExpClk(UART_MODULE, SysCtlClockGet(), BAUD_RATE,
                        (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));

    return;
}

void LEDInit(void)
{
    // GPIO Config
    // PN0 is used for RUN LED
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
    GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0);

    return;
}

void UARTPrint(const char* message)
{

    while(*message != '\0')
    {
        UARTCharPut(UART_MODULE, *message);
        message++;
        // blinking the RUN LED
    }
}

int main(void)
{

    ui32SysClock = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
                SYSCTL_OSC_MAIN |
                SYSCTL_USE_PLL |
                SYSCTL_CFG_VCO_480), 120000000);

    //SysCtlClockSet(SYSCTL_XTAL_25MHZ |
    //        SYSCTL_OSC_MAIN |
    //        SYSCTL_USE_PLL |
    //        SYSCTL_CFG_VCO_480);



    LEDInit();

    UARTInit();

    while(1)
    {
        UARTPrint("Hello TIVA !!! \r\n;");
        GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0);
        SysCtlDelay(1600000);
        GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 1);
        SysCtlDelay(1600000);
    }

//	return 0;
}