DSP里I2C通信问题 急急!!!
extern void transmitFunc(void){
int w = 0;
int i;
// IIC_Flag = 1;
Counter1 = 2;
while(Counter1)
{
if (IIC_Free_Flag == 0)
{
IIC_Free_Flag = 1;
break;
}
}
IIC_flag_receive_finish = 0;
IIC_Tx_Num = 0;
I2C_config(&Config);
I2C_RSET(I2CSAR,IIC_Address);
I2C_RSET(I2CCNT,master_transmit_number); //设置发送数据的个数
w = I2C_RGET(I2CSTR)&(0x1000);
if(w==0)//总线空闲
{
I2C_start();
}
else
{
I2C_reset();
for(i=0;i<500;i++);
w = I2C_RGET(I2CSTR)&(0x1000);
if(w==0)
I2C_start();
else;
}
}
w = I2C_RGET(I2CSTR)&(0x1000); 这句话什么意思,程序运行时一直是4096,我想让 w=0 进入空闲状态
I2C_RGET(I2CSTR)什么意思求大神解答,谢谢!! 检查状态寄存器的值。 用的是CSL库 w = I2C_RGET(I2CSTR)&(0x1000);
意思就是读取I2CSTR寄存器当前的值然后与0x1000按位与运算
这是在判断某一个状态位
你多多看看你使用处理器的CSL库介绍 zhangmangui 发表于 2014-3-5 17:40 static/image/common/back.gif
用的是CSL库 w = I2C_RGET(I2CSTR)&(0x1000);
意思就是读取I2CSTR寄存器当前的值然后与0x1000按位与运 ...
我想问问:I2C_RGET(I2CSTR)具体是和哪个管脚还是和DSP的管脚没关系,我用的是TMS320 VC5509 km_zzy 发表于 2014-3-5 11:54 static/image/common/back.gif
检查状态寄存器的值。
嗯,我以前没接触过DSP,现在也不知道具体怎么改,寄存器状态应该是1吧 time_12 发表于 2014-3-6 10:51 static/image/common/back.gif
我想问问:I2C_RGET(I2CSTR)具体是和哪个管脚还是和DSP的管脚没关系,我用的是TMS320 VC5509 ...
I2CSTR这是个寄存器啊是利用CSL库里面的函数把他的值读到了而已 zhangmangui 发表于 2014-3-6 11:32 static/image/common/back.gif
I2CSTR这是个寄存器啊是利用CSL库里面的函数把他的值读到了而已
/*--------------------- Register: I2CSTR -----------------------*/
#define _I2C_I2CSTR_ADDR (0x3C02u)
#define _I2C_I2CSTR PREG16(_I2C_I2CSTR_ADDR)
#define I2CSTR _I2C_I2CSTR
#define I2C_RGET(Reg) _I2C_##Reg##_GET
w = I2C_RGET(I2CSTR)&(0x1000);
IDEF void I2C_getConfig(I2C_Config *Config) {
int old_intm;
old_intm = IRQ_globalDisable();
Config->i2coar = I2C_RGET(I2COAR);
Config->i2cier = I2C_RGET(I2CIER);
Config->i2cpsc = I2C_RGET(I2CPSC);
Config->i2cclkl = I2C_RGET(I2CCLKL);
Config->i2cclkh = I2C_RGET(I2CCLKH);
Config->i2ccnt = I2C_RGET(I2CCNT);
Config->i2csar = I2C_RGET(I2CSAR);
Config->i2cmdr = I2C_RGET(I2CMDR);
Config->i2cstr = I2C_RGET(I2CSTR);
Config->i2cisrc = I2C_RGET(I2CISRC);
IRQ_globalRestore(old_intm);
}
我在程序里找到这些,还是不懂(在csl_i2c.h和csl_i2chal.h中找到的) time_12 发表于 2014-3-6 14:17 static/image/common/back.gif
/*--------------------- Register: I2CSTR -----------------------*/
#define _I2C_I2CSTR_ADDR (0x3C ...
只有一个前提就是你好好看看CSL库吧 zhangmangui 发表于 2014-3-6 21:43 static/image/common/back.gif
只有一个前提就是你好好看看CSL库吧
你说的CSL库是在程序里么,我在网上没找到,求个链接谢谢!! time_12 发表于 2014-3-7 08:29 static/image/common/back.gif
你说的CSL库是在程序里么,我在网上没找到,求个链接谢谢!!
这是介绍
zhangmangui 发表于 2014-3-7 09:10 static/image/common/back.gif
这是介绍
我现在是一个DSP和两个MSP430进行I2C通信,然后拔掉一个430的模块另一个430就无法通信了。我看了CSL库,还是没搞明白
页:
[1]