2969|3

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

周立功的UART中断接收例程不能用 [复制链接]

    void __irq Uart1_Handler(void)
{
        uint8 i;

        if ((U1IIR & 0x0F) == 0x04)
        {
                rcv_new1 = 1;                                        // 设置接收到新的数据标志
                for (i=0; i<14; i++)
                {
                        Rx_buf1 = U1RBR;                // 读取FIFO的数据,并清除中断
                }
        }
       VICVectAddr = 0x00;                                // 中断处理结束
}

   U1FCR = 0xC1;                                //使能FIFO,并设置触发点为14字节
   U1IER  = 0x01;                                //允许RBR中断,即接收中断

设置触发点为14字节 。
-------------------------------------------------------
---------------------------------------------------------
问题: 如果我收到的字节数(N)大于 14,那程序该怎么改?
我试过了---如果只把中断里的循环次数改为N 。 那么第14个字节后面的所有数据都进不了数组 Rx_buf1 。
怎么办?
          

最新回复

不明LZ在说什么  详情 回复 发表于 2008-5-1 02:53
点赞 关注
 

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
若触发Uart1_Handler(),你先把Rx_buf1[]14字节数据先存起来,并清空Rx_buf1[]再接收

做个实验,发送14个0x31和14个0x32,一起发,看接收到的数据的情况

你可以申请一个数组保存,data[64],先收到的保存在data[0]-data[13],再收到保存在data[14]-data[27]
断点看看
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
建议看我的blog里
有LPC2146 UART 的例子
直接用,而且带超时保护 呵呵 算是比较实用
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
不明LZ在说什么
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表