查看: 3892|回复: 17

[求助] UART获得数据问题

[复制链接]
  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-1-9 22:28:51 | 显示全部楼层 |阅读模式
    经过分许MKL_UART.c和实际运用,发现了一些问题:那个函数uart0GetChar()获得的数据经过实际检测,发现一次读取20个字节,并且连续读取——只要调用函数一次就读取20个字节。问题出来了,GPS数据不是20的整倍数,这样在计算处理数据是会有极大的不便。求助:
    1能否1次仅仅读取1个字节数据;
    或者每中断一次读取一个字节,可以在中断中加入自己的函数。
    希望得到帮助。明天出差了,过几天才回来继续实验。

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

    使用道具 举报

    该用户从未签到

    1

    主题

    27

    帖子

    2

    注册会员

    Rank: 2

    积分
    137
    最后登录
    2025-5-27
    发表于 2016-1-12 08:16:48 来自手机 | 显示全部楼层
    你用了别人封装好的函数了吧,mcu寄存器不会支持一次读取20字节的,一般是1个字节,自己重新写一个驱动函数即可
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2016-1-12 09:41:59 | 显示全部楼层
    修改缓冲区的大小,或者自己写中断函数接收。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2016-1-12 13:37:37 | 显示全部楼层
    fortunely 发表于 2016-1-12 08:16
    你用了别人封装好的函数了吧,mcu寄存器不会支持一次读取20字节的,一般是1个字节,自己重新写一个驱动函数 ...

    我用的是KL25案例中的UART.c的函数,用串口调试读出数据是20个字节1组。在搜索buffer没有找到定义其长度的赋值。也不清楚踏实怎样获得个字节的。我才用手动方式输1个出1个,输N个出N个,好像是很好。但有程序读出时,就不是1个字节了。当然,我才用的程序是以前在PIC单片机上实现的案例搬过来的。以前的程序是读1个字节中断一次,判断写入数组,开中断再读,判断写入数组,开中断,...直到数据全部读完,关中断,分析计算显示出来。如此循环。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2016-1-12 13:45:05 | 显示全部楼层
    安 发表于 2016-1-12 09:41
    修改缓冲区的大小,或者自己写中断函数接收。

    您好,看了uart.c 和uart.h没有找到定义缓冲长度的,搜MKL25z.h也没有搜到对应的定义缓冲长度字节数值的地方。函数方法不太会,目前只是看明白后照搬或改写少部分,而后测试,成功就OK了的方法。看手册到有说明其FIFO具有64字节,这个字节数不够用。现在在准备采用仿串口的方法读GPS数据,看能否读取速度跟上GPS发送速度,如果可以,也可以解决。尽管笨,如果可行就可以了。最近有些其他事不允许太多时间花在这个玩的项目上。不知您能否给个具体点的提示,我尝试实验一下,谢谢。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2016-1-12 19:13:46 | 显示全部楼层
    看一下中断函数,里面对于接收的处理。或者把你的.c文件传上来,大家帮你分析一下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2016-1-12 22:07:27 | 显示全部楼层
    本帖最后由 zhjb1 于 2016-1-13 11:58 编辑
    安 发表于 2016-1-12 19:13
    看一下中断函数,里面对于接收的处理。或者把你的.c文件传上来,大家帮你分析一下。 ...

    算了,这就是分析?谢谢了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2016-1-13 11:06:36 | 显示全部楼层
    你这样做不对。需要将GPS数据读取到一个数组中,先判断GGA,然后再判断*,这样才能做一条完整的GPS数据,比如你在调试过程中,GPS可能输出了好多数据,会丢失数据。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2016-1-13 11:53:33 | 显示全部楼层
    安 发表于 2016-1-13 11:06
    你这样做不对。需要将GPS数据读取到一个数组中,先判断GGA,然后再判断*,这样才能做一条完整的GPS数据,比 ...

    谢谢,这个程序在PIC单片机上完全正常,实际上比这复杂的多,按键选择显示集中数据的结果的。程序实际上就是在向数组中填充:gps[]。给到网上的程序仅仅是摘出来处理GPGGA一组的数据,单独运行也正常。只是在KL26下不正常。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2016-1-13 19:13:01 | 显示全部楼层
    建议做到缓冲区接收,然后查找完整GGA或者RMC语句。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-23 04:51 , Processed in 0.180167 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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