这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » SBUF 怎么SBUF读不出来呢?

共2条 1/1 1 跳转至

SBUF 怎么SBUF读不出来呢?

院士
2006-09-17 18:14:16     打赏
SBUF 怎么SBUF读不出来呢?



关键词: 怎么     读不     出来    

院士
2006-12-22 22:43:00     打赏
2楼
问 void UART() interrupt 4

{
    uchar address=0x01;
     if(RI)
       {
           RI = 0;
           _24c02write(addres,SBUF);
       }
}

经测试24C02write()通过,串口拨特率及相关设置也是正确的,并能进入中断

郁闷```````````````` 1: 原来不是读不出来不是读不出来,而是参数传不进_24c02write();

为什么?中断里不能调用函数么?加给它加extern也不行,那位大侠帮帮俺啊 2: 这段程序能被编译通过吗?_24c02write(addres,SBUF);         //函数前是否有下划线?addres少了个s


你将SBUF先赋给变量,再通过变量给函数传递参数试一下! 3: 能读SBUF,但参数写不进函数里不过我把程序结构改了,把24C02那个拿出来了,放到MAIN里了 4: 把RI=0放在调用函数之后!可能是在写函数的执行过程中,又来了串口中断,或者是干扰了I2C的时序! 5: SUBF只能读一次SBUF做函数的参数来传递会失败。

data =SBUF;
_24c02write(addres,data);

6: SUBF只能读一次是其一,其二是函数内第2个参数可能用了指针SUBF不能被间接寻址,所以函数内不能用指针变量访问第2个参数. 7: 谢谢楼上几位! 8: 注意使用的寄存器组是否一样
你的中断用的是第几组寄存器?
和你所调用的函数用的寄存器组是否一样?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]