查看: 2784|回复: 3

[已解决] MK60 串口如何接收不定长度的字符串?

[复制链接]

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
16
最后登录
2019-1-28
发表于 2019-1-18 14:09:38 | 显示全部楼层 |阅读模式


    第一次用NXP的芯片,型号是MK60DN512VLQ10 ,编译器用的是CODEWARRIOR 10.6。
    之前用串口实现固定长度的数据接收并判断回复,没有问题,现在的情况是想跟别的设备对接,而这次想通过这个串口实现的功能是可以接收不定长度的字符串,根据我在STM32芯片上的经验,我选择了用总线空闲中断IDLE来进行处理,因为第一次用NXP芯片,所以我用PE生成了基本代码,但是这个生成的代码是没有IDLE使能的,所以我进行了一部分修改:使能了IDLE中断,增加了IDLE中断函数。
    实际的调试情况是没法正常工作,数据接收到没有反应,在自己定义的数据接收BUFFER里,数据顺序与实际不符,但是有点奇怪的规律,后来查过手册后,发现因为我使用的是UART1,根据数据手册描述,UART0,UART1的FIFO深度是8,其他的FIFO深度是1,那么我直接不使能FIFO是否可以解决呢?
//UART_PDD_EnableFifo(UART1_BASE_PTR, (UART_PDD_TX_FIFO_ENABLE)); /* Enable RX and TX FIFO */
    我直接注释掉了FIFO使能的语句,结果在BUFFER里的数据顺序也正常了,但是程序还是不能工作。
    根据程序运行状况,有如下问题:
    1.接收中断因为没有接收到足够的数据而不触发,但是IDLE中断又没有正确触发,因为如果触发了中断,我判断了BUFFER里的内容后,会用memset函数清除掉里面的内容。
    2.BUFFER里的数据位置问题,每次新收的数据都是在BUFFER里按顺序往下存储的,我想实现的是每次处理完成后,下次的数据进来是从BUFFER[0]开始。
    3.PE生成的代码里有这样一个函数:
LDD_TError zigbee_ReceiveBlock(LDD_TDeviceData *DeviceDataPtr, LDD_TData *BufferPtr, uint16_t Size)
其中红字是我定义的部件名称,这个函数决定了我能收多少数据,和存储数据BUFFER,因为每次接收数据的长度不定,所以这个SIZE参数我都用的比较大,大于我收到的数据的最大长度,但是这就引出了问题1。
   
   请各位大神指点下,或者给个思路,如何接收处理不定长度的字符串,这个芯片真的不熟悉。

最佳答案

禁止FIFO功能,然后通过中断方式来一个处理一个,这个处理方式应该适用你的应用吧。 你可以参考一下SDK中例程中的UART 例程, SDK软件包:http://www.nxp.com/support/devel ... -sdk:MCUXpresso-SDK ...
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24861
最后登录
2025-7-18
发表于 2019-1-18 15:00:00 | 显示全部楼层
禁止FIFO功能,然后通过中断方式来一个处理一个,这个处理方式应该适用你的应用吧。
你可以参考一下SDK中例程中的UART 例程, SDK软件包:http://www.nxp.com/support/devel ... -sdk:MCUXpresso-SDK
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
16
最后登录
2019-1-28
 楼主| 发表于 2019-1-18 15:52:41 | 显示全部楼层
小恩GG 发表于 2019-1-18 15:00
禁止FIFO功能,然后通过中断方式来一个处理一个,这个处理方式应该适用你的应用吧。
你可以参考一下SDK中例 ...

刚刚问题已经解决了,正是禁用了RX的FIFO,同时自己琢磨着改了下PE生成的函数,跟版主提供的方法一致!还是感谢版主的回复!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    昨天 23:21
  • 签到天数: 1845 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112619
    最后登录
    2025-7-17
    发表于 2019-1-19 21:45:23 | 显示全部楼层
    我也学习一下,哈哈
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-18 20:57 , Processed in 0.089987 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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