请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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;
}