您好!
我正在尝试创建一个项目、在该项目中、我可以 通过 wifi 设置 UART 1的配置(我是说使用连接到 LaunchPad 的应用程序)、对于 UART0、我将使用它进行调试。
我所做的是
在引脚多路复用器中配置 UART-1:
仅执行此操作
MAP_PRCMPeripheralClkEnable(PRCM_UARTA1, PRCM_RUN_MODE_CLK); MAP_UARTFIFODisable(UARTA1_BASE); UARTIntRegister(UARTA1_BASE, vUartHandler); MAP_IntPrioritySet(INT_UARTA1, INT_PRIORITY_LVL_1); UARTIntClear(UARTA1_BASE, UART_INT_RX); UARTIntEnable(UARTA1_BASE, UART_INT_RX);
当我接收到 UART 1配置时、我调用一个函数来运行该代码
MAP_PinTypeUART(MDB_CFG_TX_PIN, MDB_CFG_TX_PIN_MODE); MAP_PinTypeUART(MDB_CFG_RX_PIN, MDB_CFG_RX_PIN_MODE); MAP_UARTConfigSetExpClk(MDB_TASK_UART_BASE, MAP_PRCMPeripheralClockGet(MDB_TASK_UART_PRCM), u32BaudeRateCfg, (UART_CONFIG_WLEN_8 | u32StopBitCfg | u32ParityCfg));
完成此操作后、UART 开始工作、但行为异常、首先只接收到来自许多字节的字节、对于其余接收到的数据、第一个字节成为最后一个字节、
我不确定是需要重新初始化某个内容,还是需要禁用中断,然后再执行启用该中断的配置,但当我复制 UART 配置部分中的那些行时,似乎可以正常工作,就像这样
MAP_PinTypeUART(MDB_CFG_TX_PIN, MDB_CFG_TX_PIN_MODE); MAP_PinTypeUART(MDB_CFG_RX_PIN, MDB_CFG_RX_PIN_MODE); MAP_UARTConfigSetExpClk(MDB_TASK_UART_BASE, MAP_PRCMPeripheralClockGet(MDB_TASK_UART_PRCM), u32BaudeRateCfg, (UART_CONFIG_WLEN_8 | u32StopBitCfg | u32ParityCfg)); // the extra code MAP_UARTFlowControlSet(UARTA1_BASE, UART_FLOWCONTROL_NONE); MAP_UARTFIFODisable(UARTA1_BASE); MAP_IntPrioritySet(INT_UARTA1, INT_PRIORITY_LVL_1); UARTIntClear(UARTA1_BASE, UART_INT_RX); UARTIntEnable(UARTA1_BASE, UART_INT_RX);
我不明白为什么、所以我希望有人能帮助我了解当我从应用程序收到配置时如何进行配置、以及在这行代码之后它为什么起作用(如果有任何文档解释了这些函数、它也会有所帮助)
请注意、