请选择 进入手机版 | 继续访问电脑版
查看: 211|回复: 6

[求助] i.mx RT1061 串口中断求助。

[复制链接]

该用户从未签到

1

主题

8

帖子

0

金豆

新手上路

Rank: 1

积分
25
最后登录
2021-9-13
发表于 2021-9-9 13:34:23 | 显示全部楼层 |阅读模式
大家好,我目前在用RT1061芯片,用空闲中断+DMA的方式来接收不定长数据,使用MCUXpressoconfig tool工具来做外设配置(只做了UART和DMA的设置,时钟没操作过)。基本操作就是IO\CLK\MPU\外设\DMA等初始化后,开启空闲中断:LPUART_EnableInterrupts(LPUART3,kLPUART_IdleLineInterruptEnable);EnableIRQ(LPUART3_IRQn);然后就是等待接收LPUART_ReceiveEDMA(LPUART3_PERIPHERAL, &LPUART3_LPUART_eDMA_Handle, &receiveXfer);。在中断服务函数LPUART3_IRQHandler中就是先清除空闲中断flag,关闭DMA,接收数据,然后把数据通过串口发送回来。
最开始我是用uart3做接收,uart1做发送,这样的调试是没问题的。但是当我用uart3接收后,再用uart3发送回来就出现了问题,只能成功一次,调试发现,用DMA的发送函数LPUART_SendEDMA(LPUART3_PERIPHERAL, &LPUART3_LPUART_eDMA_Handle, &sendXfer)后,会自动调用回调函数,会进入中断服务函数。因为我加了个判断,如果是发送完成中断的话,就对发送完成flag进行清除。然后问题又出来了,NXP库里面函数清除函数只能清除空闲中断flag(LPUART_ClearStatusFlags()),直接赋值STAT寄存器值我也始过(LPUART3->STAT |= LPUART_STAT_TDRE_MASK),都不能清除发送完成flag,程序会死中断服务函数LPUART3_IRQHandler里面无限循环。
大神们有遇到过这个问题么,应该怎么解决呢?
对了,我也试过在发送之前先disable中断,发完再打开,也不行。
回复

使用道具 举报

该用户从未签到

1

主题

8

帖子

0

金豆

新手上路

Rank: 1

积分
25
最后登录
2021-9-13
 楼主| 发表于 2021-9-9 14:07:18 | 显示全部楼层
来个大佬帮忙解决下
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

8

帖子

0

金豆

新手上路

Rank: 1

积分
25
最后登录
2021-9-13
 楼主| 发表于 2021-9-10 09:26:20 | 显示全部楼层
木有人啊
回复

使用道具 举报

该用户从未签到

17

主题

80

帖子

0

金豆

中级会员

Rank: 3Rank: 3

积分
259
最后登录
2021-11-30
发表于 2021-9-11 11:34:55 | 显示全部楼层
额,我没用DMA,只用了串口中断来发送和接收。
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

8

帖子

0

金豆

新手上路

Rank: 1

积分
25
最后登录
2021-9-13
 楼主| 发表于 2021-9-13 09:32:49 | 显示全部楼层
mrhwt 发表于 2021-9-11 11:34
额,我没用DMA,只用了串口中断来发送和接收。

那能实现不定长的收发吗
回复 支持 反对

使用道具 举报

  • TA的每日心情

    2021-10-25 09:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    9

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    233
    最后登录
    2021-12-3
    发表于 2021-9-13 11:03:58 | 显示全部楼层
    如图中描述,建议看芯片手册对应的lpuart章节。
    transmit.png
    啊手动阀阿德
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17

    主题

    80

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    259
    最后登录
    2021-11-30
    发表于 2021-9-13 18:13:56 | 显示全部楼层
    有病 发表于 2021-9-13 09:32
    那能实现不定长的收发吗

    没问题啊,数据来了就中断回调出来。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2021-12-3 09:54 , Processed in 0.066304 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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