飞翔科技电子爱好者论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3505|回复: 4

请教下AW60串口通讯程序,关于你们家的开发板

[复制链接]

1

主题

3

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2015-7-26 21:30:18 | 显示全部楼层 |阅读模式
我之前有在你们家买了个AW60的开发板学习,后来用到了,串口通讯,只需要中断接受
代码如下:是你们开发板是提供的
/*************************************************************/
/*                       串口接收函数                        */
/*************************************************************/
unsigned char SCI_receive(void)
{
  while(!SCI1S1_RDRF);          //等待发送数据寄存器满
  return(SCI1D);
}

/*************************************************************/
/*                     串口中断接收函数                      */
/*************************************************************/
void interrupt 17 receivedata(void)
{
    data_receive = SCI_receive();
    if(data_receive == 'O')
    {
      SCI_send('Y');
      LEDCPU = LED_ON;
    }
    if(data_receive == 'C')
    {
      SCI_send('V');
      LEDCPU = LED_OFF;
    }
}
我一直用的这些代码运行,但是现在问题来了,用到7,8天左右就会出问题,平时测试没有问题,

请问中断程序是否可以改成如下

interrupt 15 void  SCI_Rev(void)
{   
  // while(SCIS1_RDRF)
        if(SCIS1_RDRF)   
   {
      Buff2 = SCID;

//////处理相对应的程序


      SCIS1_RDRF=0;   
  }  
  

}





回复

使用道具 举报

3

主题

313

帖子

1276

积分

超级版主

Rank: 8Rank: 8

积分
1276
发表于 2015-7-27 09:19:04 | 显示全部楼层
如果有问题就应当分析一下问题出在哪里,如果是7,8天出现问题,一般来说软件问题的可能性不大。硬件不稳定的可能性比较大,串口本来也不是一个十分可靠的接口。另外,改之后的代码与改之前略有不同,改之前的接收函数是等待有数据之后读取数据,改之后的代码是有数据就读取,没数据就不读取,如果没有设置其它串口中断的话,进入中断后标志位肯定是置一的,所以两种代码的执行效果是一样的。还有,SCIS1_RDRF标志位的清除不是赋值0。要以芯片手册为准。In 8-bit mode, to clear RDRF, read SCIxS1 with RDRF = 1 and then read the SCI data register (SCIxD).
回复 支持 反对

使用道具 举报

28

主题

137

帖子

1547

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1547
发表于 2015-7-27 09:23:51 | 显示全部楼层
中断号也用错了,你用的是SPI的中断号。
回复 支持 反对

使用道具 举报

1

主题

3

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2015-7-27 17:03:38 | 显示全部楼层
admin 发表于 2015-7-27 09:23
中断号也用错了,你用的是SPI的中断号。

一个是AW60,
一个是QG4的,中断号不一样!
回复 支持 反对

使用道具 举报

1

主题

3

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2015-7-27 17:26:03 | 显示全部楼层
bigmarshal 发表于 2015-7-27 09:19
如果有问题就应当分析一下问题出在哪里,如果是7,8天出现问题,一般来说软件问题的可能性不大。硬件不稳定 ...

谢谢你详细的解答,
  我后来发现一个问题可能会导致问题,就是但我在接受的同时,现在发送数据了,此时也会进入中断,目前我改完之后再去测试段时间,
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|飞翔科技电子爱好者论坛  

GMT+8, 2019-2-18 02:27 , Processed in 0.214473 second(s), 26 queries .

Powered by Discuz X3.2

© 2001-2011 Comsenz 源码论坛

返回顶部