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.
EK-TM4C123GH6PM 設置UART 2 輸出, 無任何輸出,
是那裡設置有錯?
void ConfigureUART(void)
{
// Enable GPIOD
HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTD_BASE + GPIO_O_CR) = 0xFF;
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
while(!(SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOD)));
//
// Enable UART2
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART2);
while(!(SysCtlPeripheralReady(SYSCTL_PERIPH_UART2)));
//
// Configure GPIO Pins for UART mode.
//
GPIOPinConfigure(GPIO_PD6_U2RX);
GPIOPinConfigure(GPIO_PD7_U2TX);
GPIOPinTypeUART(GPIO_PORTD_BASE, GPIO_PIN_6 | GPIO_PIN_7);
//
// Use the internal 16MHz oscillator as the UART clock source.
//
UARTClockSourceSet(UART2_BASE, UART_CLOCK_PIOSC);
UARTConfigSetExpClk(UART2_BASE,16000000,115200,UART_CONFIG_PAR_NONE|UART_CONFIG_STOP_ONE|UART_CONFIG_WLEN_8);
UARTConfigSetExpClk(UART2_BASE, SysCtlClockGet(), 115200,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
UARTEnable(UART2_BASE);
}
//*****************************************************************************
int main(void)
{
ROM_SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
ConfigureUART();
while(1)
{
UARTCharPut(UART2_BASE,0xAA);
}
}
PD7是特殊功能引脚,需要解锁才可以使用的。加上这句就好了
HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; HWREG(GPIO_PORTD_BASE + GPIO_O_CR) = 0xFF;
可以参考下我写的这个帖子。