12
返回列表 发新帖
楼主: zznmylove

[已解决] MKL15Z64串口接收数据问题(已解决)

[复制链接]

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-3-17 09:54:08 | 显示全部楼层
zznmylove 发表于 2015-3-17 09:06
您好,昨天我发给您的代码,有问题么?还有,从官网下来的代码中的Arm_cm0.c中,设置中断优先级的函数我 ...

你好,昨天下班了,今天刚帮你看。
Arm_cm0.c的官方优先级设置代码的确是不对的,关于这点,我之前也发过经验分享:
[经验分享]关于Kinetis L系列中断优先级设置问题的解决方案
大致看了下,你的代码里面用了很多的中断,包括DMA, UART0,UART2,LPTMR等等。
你在使用UART2做57600bps波特率接收的时候,DMA中断是否也工作呢?
因为DMA的中断优先级肯定是高于UART的,如果同时发生DMA中断和UART2中断,DMA中断将会优先执行。
另外,UART2工作的时候,UART0是否工作?如果两个UART模块都工作,那么你这里谁的优先级更高。
你是否可以做这样的测试,把所有其他的中断全部禁止掉,只留UART2的中断,57600波特率,然后再试下,看看是否还会丢数据。


回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2019-2-12 17:50
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    39

    帖子

    0

    注册会员

    Rank: 2

    积分
    92
    最后登录
    2019-2-12
     楼主| 发表于 2015-3-17 10:02:35 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2015-3-17 09:54
    你好,昨天下班了,今天刚帮你看。
    Arm_cm0.c的官方优先级设置代码的确是不对的,关于这点,我之前也发过 ...

    我先测试下,你帮我看看,我代码中的Arm_cm0.c修改过后的是不是正确的,和你的方法不同,为当时想调试来看的,但是我不知道从哪里调用内核的寄存器来看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-3-17 10:25:41 | 显示全部楼层
    zznmylove 发表于 2015-3-17 10:02
    我先测试下,你帮我看看,我代码中的Arm_cm0.c修改过后的是不是正确的,和你的方法不同,为当时想调试来 ...

    你按照我的经验分享修改吧,那个我测试过了,ARM_CM0.c文件我也改过来了。
    在IAR中查看NVIC的寄存器方法:
    1:View-> register
    2: 选择Nested Vectored Interrrupt
    9.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-12 17:50
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    39

    帖子

    0

    注册会员

    Rank: 2

    积分
    92
    最后登录
    2019-2-12
     楼主| 发表于 2015-3-17 10:36:37 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2015-3-17 10:25
    你按照我的经验分享修改吧,那个我测试过了,ARM_CM0.c文件我也改过来了。
    在IAR中查看NVIC的寄存器方法 ...

    好的,问题找到了,单独使用串口的时候,可以正常收发,我启用了TSI中断,TSI用中断扫描的,导致中断速度太快,而且等级优先级和串口中断优先级一样,导致UART无法正常接收,至于DMA,是在播放语音的时候才会操作的,我平时测试,DMA没有工作,现在调整了优先级,就好了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-3-17 10:43:41 | 显示全部楼层
    zznmylove 发表于 2015-3-17 10:36
    好的,问题找到了,单独使用串口的时候,可以正常收发,我启用了TSI中断,TSI用中断扫描的,导致中断速度 ...

    非常好!
    一般这种问题,如果不是波特率偏差,大多都是中断抢占导致的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-12 17:50
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    39

    帖子

    0

    注册会员

    Rank: 2

    积分
    92
    最后登录
    2019-2-12
     楼主| 发表于 2015-3-17 11:14:25 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2015-3-17 10:43
    非常好!
    一般这种问题,如果不是波特率偏差,大多都是中断抢占导致的。 ...

    谢谢您的大力支持,终于解决了这个问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-3-17 11:27:16 | 显示全部楼层
    非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此贴默认为已解决.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-12 17:50
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    39

    帖子

    0

    注册会员

    Rank: 2

    积分
    92
    最后登录
    2019-2-12
     楼主| 发表于 2015-3-17 11:32:59 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2015-3-17 11:27
    非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此贴默认为已解决. ...

    好的,已解决
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-22 20:56 , Processed in 0.098333 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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