那串口0的发送脚来说
是不是说,这么多的引脚,都可以作为发送脚?
而在串口初始化的时候,
貌似只使用了一个函数就可以了
- /**
- * [url=home.php?mod=space&uid=247401]@brief[/url] Open and set UART function
- *
- * @param[in] uart The pointer of the specified UART module.
- * @param[in] u32baudrate The baudrate of UART module.
- *
- * [url=home.php?mod=space&uid=266161]@return[/url] None
- *
- * [url=home.php?mod=space&uid=1543424]@Details[/url] This function use to enable UART function and set baud-rate.
- */
- void UART_Open(UART_T* uart, uint32_t u32baudrate)
- {
- uint32_t u32UartClkSrcSel=0ul, u32UartClkDivNum=0ul;
- uint32_t u32ClkTbl[4] = {__HXT, 0ul, __LXT, __HIRC};
- uint32_t u32Baud_Div = 0ul;
- if(uart==(UART_T*)UART0)
- {
- /* Get UART clock source selection */
- u32UartClkSrcSel = ((uint32_t)(CLK->CLKSEL1 & CLK_CLKSEL1_UART0SEL_Msk)) >> CLK_CLKSEL1_UART0SEL_Pos;
- /* Get UART clock divider number */
- u32UartClkDivNum = (CLK->CLKDIV0 & CLK_CLKDIV0_UART0DIV_Msk) >> CLK_CLKDIV0_UART0DIV_Pos;
- }
- else if(uart==(UART_T*)UART1)
- {
- /* Get UART clock source selection */
- u32UartClkSrcSel = (CLK->CLKSEL1 & CLK_CLKSEL1_UART1SEL_Msk) >> CLK_CLKSEL1_UART1SEL_Pos;
- /* Get UART clock divider number */
- u32UartClkDivNum = (CLK->CLKDIV0 & CLK_CLKDIV0_UART1DIV_Msk) >> CLK_CLKDIV0_UART1DIV_Pos;
- }
- else if(uart==(UART_T*)UART2)
- {
- /* Get UART clock source selection */
- u32UartClkSrcSel = (CLK->CLKSEL3 & CLK_CLKSEL3_UART2SEL_Msk) >> CLK_CLKSEL3_UART2SEL_Pos;
- /* Get UART clock divider number */
- u32UartClkDivNum = (CLK->CLKDIV4 & CLK_CLKDIV4_UART2DIV_Msk) >> CLK_CLKDIV4_UART2DIV_Pos;
- }
- else if(uart==(UART_T*)UART3)
- {
- /* Get UART clock source selection */
- u32UartClkSrcSel = (CLK->CLKSEL3 & CLK_CLKSEL3_UART3SEL_Msk) >> CLK_CLKSEL3_UART3SEL_Pos;
- /* Get UART clock divider number */
- u32UartClkDivNum = (CLK->CLKDIV4 & CLK_CLKDIV4_UART3DIV_Msk) >> CLK_CLKDIV4_UART3DIV_Pos;
- }
- else if(uart==(UART_T*)UART4)
- {
- /* Get UART clock source selection */
- u32UartClkSrcSel = (CLK->CLKSEL3 & CLK_CLKSEL3_UART4SEL_Msk) >> CLK_CLKSEL3_UART4SEL_Pos;
- /* Get UART clock divider number */
- u32UartClkDivNum = (CLK->CLKDIV4 & CLK_CLKDIV4_UART4DIV_Msk) >> CLK_CLKDIV4_UART4DIV_Pos;
- }
- else if(uart==(UART_T*)UART5)
- {
- /* Get UART clock source selection */
- u32UartClkSrcSel = (CLK->CLKSEL3 & CLK_CLKSEL3_UART5SEL_Msk) >> CLK_CLKSEL3_UART5SEL_Pos;
- /* Get UART clock divider number */
- u32UartClkDivNum = (CLK->CLKDIV4 & CLK_CLKDIV4_UART5DIV_Msk) >> CLK_CLKDIV4_UART5DIV_Pos;
- }
- /* Select UART function */
- uart->FUNCSEL = UART_FUNCSEL_UART;
- /* Set UART line configuration */
- uart->LINE = UART_WORD_LEN_8 | UART_PARITY_NONE | UART_STOP_BIT_1;
- /* Set UART Rx and RTS trigger level */
- uart->FIFO &= ~(UART_FIFO_RFITL_Msk | UART_FIFO_RTSTRGLV_Msk);
- /* Get PLL clock frequency if UART clock source selection is PLL */
- if(u32UartClkSrcSel == 1ul)
- {
- u32ClkTbl[u32UartClkSrcSel] = CLK_GetPLLClockFreq();
- }
- else
- {
- }
- /* Set UART baud rate */
- if(u32baudrate != 0ul)
- {
- u32Baud_Div = UART_BAUD_MODE2_DIVIDER((u32ClkTbl[u32UartClkSrcSel]) / (u32UartClkDivNum + 1ul), u32baudrate);
- if(u32Baud_Div > 0xFFFFul)
- {
- uart->BAUD = (UART_BAUD_MODE0 | UART_BAUD_MODE0_DIVIDER((u32ClkTbl[u32UartClkSrcSel]) / (u32UartClkDivNum + 1ul), u32baudrate));
- }
- else
- {
- uart->BAUD = (UART_BAUD_MODE2 | u32Baud_Div);
- }
- }
- }
那么,是哪里指定的引脚呢?
|