查看: 2900|回复: 4

[其他] SCI接收中断有时能进有时不能进

[复制链接]

该用户从未签到

8

主题

12

帖子

0

新手上路

Rank: 1

积分
48
最后登录
1970-1-1
发表于 2013-1-21 20:40:51 | 显示全部楼层 |阅读模式
 DJ128芯片SCI中断接收字符串数据,有时候会触发中断,有时候有不能,请问原因
我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

8

主题

12

帖子

0

新手上路

Rank: 1

积分
48
最后登录
1970-1-1
 楼主| 发表于 2013-1-21 21:38:22 | 显示全部楼层

回复:SCI接收中断有时能进有时不能进

 部分代码如下:
  __interrupt void SCI1_Recv(void)
{
      uint8 t,m=0;
      extern uint8 Length,a,*Result,*p;
      extern uint8 SCI1RecvBuffer[300];
      extern uint8 SendOrNo;        
      extern uint8 SCIRecvData[10],SCISendData[10];
      SCI1RecvBuffer[l]=SCIRe1(1,p); //接收字符数据
      if(SCI1RecvBuffer[l]=='%') 
      {
      .....     }
      else l=0;
    }
 
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

288

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
610
最后登录
1970-1-1
发表于 2013-1-22 09:47:05 | 显示全部楼层

RE:SCI接收中断有时能进有时不能进

应该是数据处理的问题。在中断中不需要这么多的定义和处理,只需要将数据读取走就可以了。
回复 支持 反对

使用道具 举报

该用户从未签到

27

主题

418

帖子

0

新手上路

Rank: 1

积分
228
最后登录
1970-1-1
发表于 2013-1-22 22:12:44 | 显示全部楼层

回复:SCI接收中断有时能进有时不能进

注意标志位
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

12

帖子

0

新手上路

Rank: 1

积分
48
最后登录
1970-1-1
 楼主| 发表于 2013-1-23 21:12:04 | 显示全部楼层

回复:SCI接收中断有时能进有时不能进

回复第 3 楼 于2013-01-22 09:47:05发表:
应该是数据处理的问题。在中断中不需要这么多的定义和处理,只需要将数据读取走就可以了。
 
我把中断里边的数据处理程序放到主函数中。实际上我是有两个中断,SCI中断解析上位机的命令,然后控制关闭SCI中断、开启CAN接收中断,然后在CAN中断计数到一定时候再开启SCI中断、关闭CAN中断,如此往复。现在遇到的问题是CAN中断不能正确执行预定的程序,怀疑是接收器溢出,不知道像两种中断应该怎么来布置比较好?
 
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-20 04:33 , Processed in 0.095978 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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