这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 瑞萨单片机iic通信问题

共4条 1/1 1 跳转至

瑞萨单片机iic通信问题

菜鸟
2007-08-27 16:09:18     打赏

请问如何用瑞萨M16C/62P单片机进行IIC通信? 我写了发送和接收的程序,但不成功。把代码贴出来,请大家帮我看看,谢谢了!
发送程序:
.include ..\tools\sfr62p.inc

.SECTION program
.GLB _initiic
_initiic:
   mov.b #39,u2brg
   mov.b #00000010B, u2mr
   mov.b #10010000B, u2c0  ;选f1为计数源
   bset re_u2c1
   bset te_u2c1      ;允许发送
   mov.b #00000001B, u2smr
  
   bclr iicm2_u2smr2  ;选NACK/ACK中断
   bset ifsr26
   bset ifsr27
   bclr swc9_u2smr4
   rts
.END

#include "..\tools\sfr62p.h"

extern void initiic(void);

void main(void)
{
 int i=0;
 unsigned int msg[2]={0x0c,0x07};
 initiic();
 stspsel_u2smr4=0;
 stareq_u2smr4=1;
 stspsel_u2smr4=1;
 
  if(ti_u2c1==1)
     u2mr=0x00;

 for(i=0;i<2&&ti_u2c1==1;i++)
   {u2tb=msg[i];}
   stspsel_u2smr4=0;
    stpreq_u2smr4=1;
    stspsel_u2smr4=1;
}



接收程序:
.include ..\tools\sfr62p.inc

.SECTION program
.GLB _iic
_iic:
   mov.b #39,u2brg
   mov.b #00000010B, u2mr
   mov.b #10010000B, u2c0   ;选f1为计数源
   bset re_u2c1
   bset te_u2c1
   mov.b #00000001B, u2smr
   bclr iicm2_u2smr2
   bset ifsr26
   bset ifsr27
   bclr swc9_u2smr4
   rts
.end

#include "..\tools\sfr62p.h"
#include "..\tools\io.h"
extern void iic(void);

void main(void)
{
  int i=0;
    iic();
 while(1)
  { if(ri_u2c1==1)
    {  i=u2rb;
    p2_0=0;//亮灯
    }
   }
}

请大家帮帮忙啊,谢谢!




关键词: 瑞萨     单片机     通信     问题    

菜鸟
2007-08-27 16:44:12     打赏
2楼
Re

高工
2007-09-02 14:35:35     打赏
3楼

我帮你找一找,


助工
2007-09-10 13:51:19     打赏
4楼

因为对具体应用/硬件连接/出现怎样的问题不是特别清楚,只能就程序代码发表一点意见:
发送数据之前
 if(ti_u2c1==1)
     u2mr=0x00;

这时,修改U0MR寄存器似乎有点问题,因为u2mr=0x00:设定串行接口无效

具体在调试过程,如仍有问题,欢迎致电010-82861480瑞萨科技(北京)有限公司


共4条 1/1 1 跳转至

回复

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