查看: 2646|回复: 3

[求助] K10 UART IDLE中断清除后,导致接收混乱?

[复制链接]

该用户从未签到

27

主题

71

帖子

0

中级会员

Rank: 3Rank: 3

积分
262
最后登录
1970-1-1
发表于 2014-5-25 08:56:04 | 显示全部楼层 |阅读模式
 调试K10 UART时出现的现象。当接收字节是FIFO整数倍时,最后会产生IDLE中断,此时读出的FIFO数据数位0. 如果利用data_byte=UART1->D 清除中断,会导致下次接收报文第一个字节不能正常接收。请问是使用上的问题,还是UART硬件上的问题?
 
    if (UART1->S1 & UART_S1_IDLE_MASK)
    {
        count = UART1->RCFIFO;
        if (count == 0)
        {
            data_byte = UART1->D; 
            UART1->CFIFO |= UART_CFIFO_RXFLUSH_MASK;
        }
  }
........
   if (UART1->S1 & UART_S1_RDRF_MASK)
    {
        count = UART1->RCFIFO;
        for (i = 0; i < count; i++)
        {
 
            data_byte = UART1->D;            
       }
 
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

1

主题

11

帖子

0

新手上路

Rank: 1

积分
1
最后登录
1970-1-1
发表于 2014-5-25 12:21:48 | 显示全部楼层

回复:K10 UART IDLE中断清除后,导致接收混乱?

我使用的是S08的芯片,随便用串口发送字节给目标板,都会产生IDLE,不知道是什么原因? 然而有了IDLE 又不能激活单片机。 楼主用的是休眠唤醒功能吗?关掉检测IDLE的功能可以不?
回复 支持 反对

使用道具 举报

该用户从未签到

27

主题

71

帖子

0

中级会员

Rank: 3Rank: 3

积分
262
最后登录
1970-1-1
 楼主| 发表于 2014-5-25 12:58:24 | 显示全部楼层

RE:K10 UART IDLE中断清除后,导致接收混乱?

IDLE中断是用来检测接收报文结束的,没别的用意。
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-5-26 11:36:36 | 显示全部楼层

    RE:K10 UART IDLE中断清除后,导致接收混乱?

    读的时候可以通过读取走串口数据寄存器来实现清除中断,如果溢出,一定要读取以后再清除相关寄存器。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 21:32 , Processed in 0.138640 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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