查看: 997|回复: 6

[求助] LPC54101多个串口使用设置不同波特率

[复制链接]

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
45
最后登录
2023-4-24
发表于 2023-1-29 16:26:44 | 显示全部楼层 |阅读模式
大家好! 我现在使用LPC54101芯片,用到串口0,串口1,串口3   串口设置波特率9600,115200测试。  发现使用库函数操作,必须设置一样的波特率才能正常工作。  不同的串口设置不同的波特率不能正常工作,怎么解决一下? 求助官方技术支持,谢谢!

最佳答案

你看一下UM18050,21.5部分,所有的USART共享了小数分频器。 [attach]530455[/attach]
回复

使用道具 举报

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
45
最后登录
2023-4-24
 楼主| 发表于 2023-1-29 16:30:09 | 显示全部楼层
        Init_UART_PinMux(0);

        Chip_Clock_EnablePeriphClock(SYSCON_CLOCK_USART0);       
        Chip_UART_Init(LPC_USART0);//USART0
        Chip_UART_ConfigData(LPC_USART0, UART_CFG_DATALEN_8 | UART_CFG_PARITY_NONE | UART_CFG_STOPLEN_1);
        Chip_UART_SetBaud(LPC_USART0, 9600);
       
        Chip_UART_Enable(LPC_USART0);//USART0
        Chip_UART_TXEnable(LPC_USART0);
        Chip_UART_ClearStatus(LPC_USART0,UART_STAT_OVERRUNINT | UART_STAT_DELTARXBRK | UART_STAT_FRM_ERRINT | UART_STAT_PAR_ERRINT | UART_STAT_RXNOISEINT);
       
        RingBuffer_Init(&rxring0, rxbuff0, 1, USART_BUFF_SIZE, 0);//USART3
        RingBuffer_Init(&txring0, txbuff0, 1, USART_BUFF_SIZE, 0);
       
        Chip_UART_IntEnable(LPC_USART0, UART_INTEN_RXRDY);
        Chip_UART_IntDisable(LPC_USART0, UART_INTEN_TXRDY);
       
        NVIC_EnableIRQ(UART0_IRQn);


        Init_UART_PinMux(3);
       
        Chip_Clock_EnablePeriphClock(SYSCON_CLOCK_USART3);
        Chip_UART_Init(LPC_USART3);//USART0
        Chip_UART_ConfigData(LPC_USART3, UART_CFG_DATALEN_8 | UART_CFG_PARITY_NONE | UART_CFG_STOPLEN_1);
        Chip_UART_SetBaud(LPC_USART3, 9600);
       
        Chip_UART_Enable(LPC_USART3);//USART0
        Chip_UART_TXEnable(LPC_USART3);
        Chip_UART_ClearStatus(LPC_USART3,UART_STAT_OVERRUNINT | UART_STAT_DELTARXBRK | UART_STAT_FRM_ERRINT | UART_STAT_PAR_ERRINT | UART_STAT_RXNOISEINT);
       
        RingBuffer_Init(&rxring3, rxbuff3, 1, USART_BUFF_SIZE, 0);//USART3
        RingBuffer_Init(&txring3, txbuff3, 1, USART_BUFF_SIZE, 0);
       
        Chip_UART_IntEnable(LPC_USART3, UART_INTEN_RXRDY);
        Chip_UART_IntDisable(LPC_USART3, UART_INTEN_TXRDY);
       
        NVIC_EnableIRQ(UART3_IRQn);

串口初始化,部分代码拷贝
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2023-1-29 21:43:06 | 显示全部楼层
    还有这种可能性呀
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    789

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2725
    最后登录
    2024-4-4
    发表于 2023-1-30 08:15:31 | 显示全部楼层
    应该是SDK的问题,原来用到5路USART,官方的开发环境,两个不同的串口配置函数才全部配置成功的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    45
    最后登录
    2023-4-24
     楼主| 发表于 2023-1-30 08:37:16 | 显示全部楼层
    Chip_UART_SetBaud(LPC_USART0, 9600);
    Chip_UART_SetBaud(LPC_USART3, 115200);
    我在网上查资料,有一个人说,波特率配置的小数分频器函数有问题,一直没有找到资料。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    4 小时前
  • 签到天数: 1479 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92623
    最后登录
    2024-4-26
    发表于 2023-1-30 09:31:31 | 显示全部楼层
    你看一下UM18050,21.5部分,所有的USART共享了小数分频器。
    2023-01-30_093054.jpg
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    45
    最后登录
    2023-4-24
     楼主| 发表于 2023-1-30 13:35:37 | 显示全部楼层
    您好,非常感谢, 现在我在程序里面测试,屏蔽小数分频器函数,只允许执行一次。结果还是不对。
    //        /* Set fractional control registe */
            Chip_SYSCON_SetUSARTFRGCtrl(baud.mul, 0xFF);
            Chip_UART_Div(pUART, baud.div, baud.ovr);  //这一句执行一次,第二个串口屏蔽不执行。
    结果还是不正常
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-26 14:15 , Processed in 0.148287 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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