查看: 5779|回复: 13

[求助] KEIL5开发kl26 ,使用sdk2.0库,如何使用UART1作为打印口?

[复制链接]
  • TA的每日心情
    郁闷
    2016-10-27 12:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    130
    最后登录
    2019-2-2
    发表于 2016-12-9 08:53:45 | 显示全部楼层 |阅读模式
    本帖最后由 触底√反弹↑ 于 2016-12-9 12:43 编辑

    KEIL5开发kl26 ,使用sdk2.0库,之前一直使用的UART0作为打印口,Debug console type 为 DEBUG_CONSOLE_DEVICE_TYPE_LPSCI;现在打印口改为UART1了,该如何配置?如果使用串口功能,必须用UART1和UART2么?
    我知道答案 目前已有13人回答
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-27 12:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    130
    最后登录
    2019-2-2
     楼主| 发表于 2016-12-9 09:00:52 | 显示全部楼层
    打印口改用UART1,Debug console type 为 DEBUG_CONSOLE_DEVICE_TYPE_UART,结果打印乱码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-12-9 09:52:51 | 显示全部楼层
    建议你提问题时先将使用软件[Keil,IAR,或其他],开发使用的库:SKDxx,MBED,等介绍一下,对应的网友就容易对症下言了,Ok?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24861
    最后登录
    2025-7-18
    发表于 2016-12-9 10:05:30 | 显示全部楼层
    楼主你好!
    请给出具体的开发板,使用代码,配置波特率,你修改的具体地方等详细信息,这样我们才好帮你查看。
    你那边打印出乱码,你也可以debug看看你的UART1的波特率寄存器,倒推计算看看误差是不是超出1.5%了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-27 12:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    130
    最后登录
    2019-2-2
     楼主| 发表于 2016-12-9 12:55:49 | 显示全部楼层
    本帖最后由 触底√反弹↑ 于 2016-12-9 13:01 编辑
    小恩GG 发表于 2016-12-9 10:05
    楼主你好!
    请给出具体的开发板,使用代码,配置波特率,你修改的具体地方等详细信息,这样我们才好帮你查 ...

    你好,我是使用keil5,sdk2.0开发的。部分代码如下:
    void BOARD_InitDebugConsole(void)//C3/C4 UART1  kPORT_MuxAlt3
    {
        uint32_t uartClkSrcFreq;
        CLOCK_EnableClock(kCLOCK_PortC);
        PORT_SetPinMux(PORTC, 3U, kPORT_MuxAlt3);
        PORT_SetPinMux(PORTC, 4U, kPORT_MuxAlt3);
        //CLOCK_SetLpsci0Clock(1);
        uartClkSrcFreq = CLOCK_GetCoreSysClkFreq();
        DbgConsole_Init((uint32_t) UART1,9600, DEBUG_CONSOLE_DEVICE_TYPE_UART, uartClkSrcFreq);
    }
    我把引脚切换到UART0是可以的,改成这样就不行了。而且如果我把uart0作为普通串口用,结果在初始化的时候(UART_Init)报错。跟踪查看发现,UART0(UART0_Type)和UART1(UART_Type)类型不同。但是初始化函数的输入类型是UART_Type,那我想用UART0,该怎么修改?谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-27 12:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    130
    最后登录
    2019-2-2
     楼主| 发表于 2016-12-9 13:02:09 | 显示全部楼层
    zhjb1 发表于 2016-12-9 09:52
    建议你提问题时先将使用软件[Keil,IAR,或其他],开发使用的库:SKDxx,MBED,等介绍一下,对应的网友就容 ...

    你好,我是使用keil5,sdk2.0开发的。部分代码如下:
    void BOARD_InitDebugConsole(void)//C3/C4 UART1  kPORT_MuxAlt3
    {
        uint32_t uartClkSrcFreq;
        CLOCK_EnableClock(kCLOCK_PortC);
        PORT_SetPinMux(PORTC, 3U, kPORT_MuxAlt3);
        PORT_SetPinMux(PORTC, 4U, kPORT_MuxAlt3);
        //CLOCK_SetLpsci0Clock(1);
        uartClkSrcFreq = CLOCK_GetCoreSysClkFreq();
        DbgConsole_Init((uint32_t) UART1,9600, DEBUG_CONSOLE_DEVICE_TYPE_UART, uartClkSrcFreq);
    }
    我把引脚切换到UART0是可以的,改成这样就不行了。而且如果我把uart0作为普通串口用,结果在初始化的时候(UART_Init)报错。跟踪查看发现,UART0(UART0_Type)和UART1(UART_Type)类型不同。但是初始化函数的输入类型是UART_Type,那我想用UART0,该怎么修改?谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24861
    最后登录
    2025-7-18
    发表于 2016-12-9 13:30:50 | 显示全部楼层
    触底√反弹↑ 发表于 2016-12-9 13:02
    你好,我是使用keil5,sdk2.0开发的。部分代码如下:
    void BOARD_InitDebugConsole(void)//C3/C4 UART1  k ...

    用这个代码:
    SDK_2.0_FRDM-KL26Z\boards\frdmkl26z\driver_examples\uart\polling
    然后:
    1.pin_mux.c中
    void BOARD_InitPins(void)
    {
        /* Initialize UART1 pins below */

        CLOCK_EnableClock(kCLOCK_PortC);
        /* Affects PORTE_PCR0 register */
        PORT_SetPinMux(PORTC, 3U, kPORT_MuxAlt3);
        /* Affects PORTE_PCR2 register */
        PORT_SetPinMux(PORTC, 4U, kPORT_MuxAlt3);
    }

    2.board.h中
    #define BOARD_DEBUG_UART_BAUDRATE 9600
    可以在PTC3引脚打印:
    Uart polling example
    Board will send back received characters
    我已经在我的FRDM-KL26板上测试过了。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-27 12:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    130
    最后登录
    2019-2-2
     楼主| 发表于 2016-12-9 14:06:12 | 显示全部楼层
    小恩GG 发表于 2016-12-9 13:30
    用这个代码:
    SDK_2.0_FRDM-KL26Z\boards\frdmkl26z\driver_examples\uart\polling
    然后:

    这样的话就得每次把打印的信息复制到类似txbuff的缓冲区中,还有如果打印变量该怎么打印呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24861
    最后登录
    2025-7-18
    发表于 2016-12-9 14:27:58 | 显示全部楼层
    触底√反弹↑ 发表于 2016-12-9 14:06
    这样的话就得每次把打印的信息复制到类似txbuff的缓冲区中,还有如果打印变量该怎么打印呢? ...

    UART_WriteBlocking(DEMO_UART, &ch, 1);
    变量思想一样的,放到这个API函数的第二个传参,但是长度也要给出。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-27 12:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    130
    最后登录
    2019-2-2
     楼主| 发表于 2016-12-9 14:34:27 | 显示全部楼层
    小恩GG 发表于 2016-12-9 14:27
    UART_WriteBlocking(DEMO_UART, &ch, 1);
    变量思想一样的,放到这个API函数的第二个传参,但是长度也要 ...

    谢谢,还有一个问题。如果我把uart0作为普通串口用,结果在初始化的时候(UART_Init)报错。跟踪查看发现,UART0(UART0_Type)和UART1(UART_Type)类型不同。但是初始化函数的输入类型是UART_Type,那我想用UART0,该怎么修改?谢谢
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-18 22:12 , Processed in 0.105739 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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