在线时间27 小时
UID198020
注册时间2007-7-22
NXP金币0 
 
 
 
该用户从未签到 
中级会员 
   
 
	- 积分
 - 386
 
 
- 最后登录
 - 2023-9-12
  
 
 | 
 
 本帖最后由 hpdell 于 2023-3-4 21:53 编辑  
 
使用 FC4_UART 功能, 配置完成 后只能输出一个字符 '\0' ? 
 
单片机使用 LPC54608J512 
 
相关程序如下: 
 
#define IOCON_PIO_FUNC2    0x02u 
 
void BOARD_InitPins(void) 
{ 
    /* Enables the clock for the IOCON block. 0 = Disable; 1 = Enable.: 0x01u */ 
    CLOCK_EnableClock(kCLOCK_Iocon); 
         
            const uint32_t port3_pin26_config = (/* Pin is configured as FC4_RXD_SDA_MOSI */ 
                                         IOCON_PIO_FUNC2 | 
                                         /* No addition pin function */ 
                                         IOCON_PIO_MODE_INACT | 
                                         /* Input function is not inverted */ 
                                         IOCON_PIO_INV_DI | 
                                         /* Enables digital function */ 
                                         IOCON_PIO_DIGITAL_EN | 
                                         /* Input filter disabled */ 
                                         IOCON_PIO_INPFILT_OFF | 
                                         /* Standard mode, output slew rate control is enabled */ 
                                         IOCON_PIO_SLEW_STANDARD | 
                                         /* Open drain is disabled */ 
                                         IOCON_PIO_OPENDRAIN_DI); 
    /* PORT3 PIN26 (coords: K5) is configured as FC4_RXD_SDA_MOSI */ 
    IOCON_PinMuxSet(IOCON, 3U, 26U, port3_pin26_config); 
 
                         
    const uint32_t port3_pin27_config = (/* Pin is configured as FC4_TXD_SCL_MISO */ 
                                         IOCON_PIO_FUNC2 | 
                                         /* No addition pin function */ 
                                         IOCON_PIO_MODE_INACT | 
                                         /* Input function is not inverted */ 
                                         IOCON_PIO_INV_DI | 
                                         /* Enables digital function */ 
                                         IOCON_PIO_DIGITAL_EN | 
                                         /* Input filter disabled */ 
                                         IOCON_PIO_INPFILT_OFF | 
                                         /* Standard mode, output slew rate control is enabled */ 
                                         IOCON_PIO_SLEW_STANDARD | 
                                         /* Open drain is disabled */ 
                                         IOCON_PIO_OPENDRAIN_DI); 
    /* PORT3 PIN27 (coords: P14) is configured as FC4_TXD_SCL_MISO */ 
    IOCON_PinMuxSet(IOCON, 3U, 27U, port3_pin27_config); 
 
 
} 
 
 
status_t BOARD_InitDebugConsole(void) 
{ 
#if ((SDK_DEBUGCONSOLE == DEBUGCONSOLE_REDIRECT_TO_SDK) || defined(SDK_DEBUGCONSOLE_UART)) 
    status_t result; 
    /* attach 12 MHz clock to FLEXCOMM0 (debug console) */ 
    CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH); 
    RESET_PeripheralReset(BOARD_DEBUG_UART_RST); 
    result = DbgConsole_Init(BOARD_DEBUG_UART_INSTANCE, BOARD_DEBUG_UART_BAUDRATE, BOARD_DEBUG_UART_TYPE, 
                             BOARD_DEBUG_UART_CLK_FREQ); 
    assert(kStatus_Success == result); 
    return result; 
#else 
    return kStatus_Success; 
#endif 
} 
 
 
 
#define DEMO_USART          USART4 
#define DEMO_USART_CLK_SRC  kCLOCK_Flexcomm0 
#define DEMO_USART_CLK_FREQ CLOCK_GetFlexCommClkFreq(0) 
 
uint8_t txbuff[]   = "Usart polling example\r\nBoard will send back received characters\r\n"; 
 
 
int main(void) 
 
{ 
BOARD_InitPins(); 
 //   BOARD_BootClockPLL220M(); 
BOARD_BootClockPLL180M(); 
 
BOARD_InitDebugConsole(); 
 
 
    /* 
     * config.baudRate_Bps = 115200U; 
     * config.parityMode = kUSART_ParityDisabled; 
     * config.stopBitCount = kUSART_OneStopBit; 
     * config.loopback = false; 
     * config.enableTx = false; 
     * config.enableRx = false; 
     */ 
    USART_GetDefaultConfig(&config); 
    config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE; 
    config.enableTx     = true; 
    config.enableRx     = true; 
 
    USART_Init(DEMO_USART, &config, DEMO_USART_CLK_FREQ); 
 
    USART_WriteBlocking(DEMO_USART, txbuff, sizeof(txbuff) - 1); 
 
 
 
} 
 
 
 
 
 
 
 
 
 
 
        
        
        
         |   
 
 
 
 |