楼主: guhongmochou

[已解决] 关于kineticis使用printf实现问题

[复制链接]

该用户从未签到

13

主题

61

帖子

0

注册会员

Rank: 2

积分
156
最后登录
2017-6-20
 楼主| 发表于 2016-12-19 15:37:17 | 显示全部楼层
技术范儿 发表于 2016-12-19 13:43
刷成j-link就不需要U盘了

谢谢,完了也可以试试
回复 支持 反对

使用道具 举报

该用户从未签到

13

主题

61

帖子

0

注册会员

Rank: 2

积分
156
最后登录
2017-6-20
 楼主| 发表于 2016-12-19 15:39:26 | 显示全部楼层
guhongmochou 发表于 2016-12-19 15:37
谢谢,完了也可以试试

引脚我自己配置的应该没问题,现在通过uart4能够输出,但是乱码,不知道为什么,检查串口格式也没什么不对
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-12-8 10:21
  • 签到天数: 743 天

    连续签到: 1 天

    [LV.9]以坛为家II

    0

    主题

    1650

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    19069
    最后登录
    2021-5-6
    发表于 2016-12-19 16:27:51 | 显示全部楼层
    我只是路过打酱油的,嘿嘿
    我又来签到了.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24861
    最后登录
    2025-7-18
    发表于 2016-12-19 17:29:05 | 显示全部楼层
    guhongmochou 发表于 2016-12-19 15:39
    引脚我自己配置的应该没问题,现在通过uart4能够输出,但是乱码,不知道为什么,检查串口格式也没什么不 ...

    debug下看看寄存器的值,估计是误差大了。
    按照寄存器倒推算下实际波特率,波特率误差不超过1.5%,否则容易乱码。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    61

    帖子

    0

    注册会员

    Rank: 2

    积分
    156
    最后登录
    2017-6-20
     楼主| 发表于 2016-12-20 10:24:42 | 显示全部楼层
    小恩GG 发表于 2016-12-19 17:29
    debug下看看寄存器的值,估计是误差大了。
    按照寄存器倒推算下实际波特率,波特率误差不超过1.5%,否则容 ...

    查看数据手册,波特率=uart Module clock/(16X(SBR[12:0]+BRFD)),
    我程序中实际设置的波特率为19200,
    在debug下查看寄存器的值,其中BDH中SBR为0x01,BDL中SBR为0x86,则推出SBR[12:0]=390,
    C4中的BRFA为0X14,则BRFD=BRFA/32=20/32=0.625,
    但是uart Module clock不知道在哪里查看,程序中是通过CLOCK_GetCoreSysClkFreq()获取,也不知这值是多少,假设波特率误差超过了,怎么处理呢,
    另外,keil mdk中的target下的Xtal(mhz)应该设置多少呢,看sdk中的对应TWR-MK64F120M开发板例程中都是是按照33M设置的,为什么呢,实际开发板的为50M,程序中到时通过clock_setxtal0Freq();设置为50M,
    还有,回帖想插入图片没发插入,要输入url地址,感觉很麻烦,只有第一次发帖貌似能插入图片
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    61

    帖子

    0

    注册会员

    Rank: 2

    积分
    156
    最后登录
    2017-6-20
     楼主| 发表于 2016-12-20 10:30:58 | 显示全部楼层
    guhongmochou 发表于 2016-12-19 15:37
    谢谢,完了也可以试试

    想刷JLINK 试试,不知道怎么刷,有没有相关文档,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    61

    帖子

    0

    注册会员

    Rank: 2

    积分
    156
    最后登录
    2017-6-20
     楼主| 发表于 2016-12-20 15:31:40 | 显示全部楼层
    小恩GG 发表于 2016-12-19 17:29
    debug下看看寄存器的值,估计是误差大了。
    按照寄存器倒推算下实际波特率,波特率误差不超过1.5%,否则容 ...

    查看数据手册,波特率=uart Module clock/(16X(SBR[12:0]+BRFD)),
    我程序中实际设置的波特率为19200,
    在debug下查看寄存器的值,其中BDH中SBR为0x01,BDL中SBR为0x86,则推出SBR[12:0]=390,
    C4中的BRFA为0X14,则BRFD=BRFA/32=20/32=0.625,
    但是uart Module clock不知道在哪里查看,程序中是通过CLOCK_GetCoreSysClkFreq()获取,也不知这值是多少,假设波特率误差超过了,怎么处理呢,
    另外,keil mdk中的target下的Xtal(mhz)应该设置多少呢,看sdk中的对应TWR-MK64F120M开发板例程中都是是按照33M设置的,为什么呢,实际开发板的为50M,程序中到时通过clock_setxtal0Freq();设置为50M,
    还有,回帖想插入图片没发插入,要输入url地址,感觉很麻烦,只有第一次发帖貌似能插入图片
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24861
    最后登录
    2025-7-18
    发表于 2016-12-20 16:14:07 | 显示全部楼层
    guhongmochou 发表于 2016-12-20 15:31
    查看数据手册,波特率=uart Module clock/(16X(SBR[12:0]+BRFD)),
    我程序中实际设置的波特率为19200,
    在 ...

    楼主你好!
    请再次检查下board.h文件,修改如下:
       #define BOARD_DEBUG_UART_TYPE DEBUG_CONSOLE_DEVICE_TYPE_UART
    #define BOARD_DEBUG_UART_BASEADDR (uint32_t) UART4
    #define BOARD_DEBUG_UART_CLKSRC BUS_CLK
    #define BOARD_DEBUG_UART_CLK_FREQ CLOCK_GetBusClkFreq()
    #define BOARD_UART_IRQ UART4_RX_TX_IRQn
    #define BOARD_UART_IRQ_HANDLER UART4_RX_TX_IRQHandler

    #ifndef BOARD_DEBUG_UART_BAUDRATE
    #define BOARD_DEBUG_UART_BAUDRATE 19200//115200

    UART4的时钟是bus 时钟,不能定义为core时钟。
    然后再测试下。
    我这边在FRDM-K64上面测试,19200没有波特率误差,能够准确打印。

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24861
    最后登录
    2025-7-18
    发表于 2016-12-20 16:17:57 | 显示全部楼层
    guhongmochou 发表于 2016-12-20 10:30
    想刷JLINK 试试,不知道怎么刷,有没有相关文档,谢谢

    如果要刷成JLINK。
    1. 安装JLINK驱动
    http://www.segger.com/downloads/jlink
    2. 下载JLINK 固件
    http://www.segger.com/downloads/jlink/26_OpenSDA_TWR-K64F120M.bin
    3. 具体操作
    1)板子断电
    2)按住reset按键的同时,上电,板子会变成bootloader 磁盘, 松开reset 按键
    3)拷贝JLINK固件到bootloader磁盘,并等待发送完成
    4)板子断电,重新上电,等待驱动安装完成。
    然后就可以作为JLINK仿真器了。

    希望能帮到你。
    如果还有问题,欢迎继续交流。

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    61

    帖子

    0

    注册会员

    Rank: 2

    积分
    156
    最后登录
    2017-6-20
     楼主| 发表于 2016-12-20 19:20:27 | 显示全部楼层
    小恩GG 发表于 2016-12-20 16:14
    楼主你好!
    请再次检查下board.h文件,修改如下:
       #define BOARD_DEBUG_UART_TYPE DEBUG_CONSOLE_DEVI ...

    是的,这边都修改过的,不知道为什么,有点烦,感觉配置没问题,我把硬件上地线断开,居然还能发送出去,不过依旧是乱码,你那边有mdk创建的这个工程啊,可以发到我邮箱我试试吗。谢谢,1051624607@qq.com,是在不行就用示波器抓波了
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

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

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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