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.
您好!
我正在使用 UART0和 UART3时没有任何问题、但当我尝试使用 UART2发送数据时、它不起作用。 我用示波器查看引脚10 (U2Tx)、在发送数据时甚至看不到任何电压变化或活动。
奇怪的是、我将 UART2配置为与 UART0和 UART3相同。
下面是 UART2初始化:
void UART2_Init (void) { // //启用 UART 使用的 GPIO 外设。 // ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD); // //启用 UART2 // ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART2); //等待 UART2模块准备就绪 while (!ROM_SysCtlPeripheralReady (SYSCTL_Periph_UART2)) { } // //为 UART 模式配置 GPIO 引脚。 // ROM_GPIOPinConfigure (GPIO_PD6_U2RX); ROM_GPIOPinConfigure (GPIO_PD7_U2TX); ROM_GPIOPinTypeUART (GPIO_PORTD_base、GPIO_PIN_6 | GPIO_PIN_7); // //将 UART 配置为115、200、8-N-1操作。 // ROM_UARTConfigSetExpClk (UART2_base、SysCtlClockGet ()、115200、 (UART_CONFIG_PAR_NONE | UART_CONFIG_STOP_ONE |UART_CONFIG_WLEN_8);//115200、9600 // //启用 UART 操作。 // ROM_UARTEnable (UART2_base); }
在 main 中、我每秒向 UART2写入一个字符以测试端口、但是、正如我说过的、似乎没有发送任何内容:
int main (void) { /*设置系统时钟*/ ROM_SysCtlClockSet (SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHz|SYSCTL_OSC_MAIN); UART0_Init(); UART2_Init(); UART3_Init(); // UART2测试 while (1){ //将字符"A"写入 UART2 UARTCharPut (UART2_base、'a'); Timer1_WAIT_ms (1000);//正常工作的自定义函数 } }
我缺少什么吗?
谢谢!
您好 Ralph、
感谢您的快速响应。 这就是问题、在解锁 PD7后、它就像一个魅力。
谢谢!