查看: 3277|回复: 2

[求助] 请教LPC54608 UART 功能, 配置完成 后只能输出一个字符 '\0' ?

[复制链接]

该用户从未签到

26

主题

97

帖子

0

中级会员

Rank: 3Rank: 3

积分
386
最后登录
2023-9-12
发表于 2023-3-4 14:31:20 | 显示全部楼层 |阅读模式
本帖最后由 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);



}










我知道答案 目前已有2人回答
回复

使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    103

    主题

    869

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4349
    最后登录
    2025-8-21
    发表于 2023-3-6 00:00:35 | 显示全部楼层
    管脚 设置 试试 切换成PULL- UP别用INACTIVE?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    97

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    386
    最后登录
    2023-9-12
     楼主| 发表于 2023-3-7 14:38:04 | 显示全部楼层
    mgn 发表于 2023-3-6 00:00
    管脚 设置 试试 切换成PULL- UP别用INACTIVE?

    好的, 多谢多谢了啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-22 03:43 , Processed in 0.092052 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表