DSP28335用IIC挂了一个EEPROM(AT24C512),其中SDA口进来的数据是不是需要用中断来一个一个读取? 15
unsignedcharI2C_DATA_IN(void){unsignedchari,c,d;switch_sda_in();DSP28x_usDelay(10000)...
unsigned char I2C_DATA_IN(void)
{
unsigned char i,c,d;
switch_sda_in();
DSP28x_usDelay(10000);
c=0;
for(i=0;i<8;i++)
{
d=GpioDataRegs.GPBDAT.bit.GPIO32; //SDA
d=d|0x01; // 输入1位
c=c|d;
c=c<<1;
}
// c=GpioDataRegs.GPBDAT.bit.GPIO32; //SDA 28335为32位 //c为8位数据
c=c&0x08;
if(c==0x08) //一直在发送的时候c==0x08;发送完c==0;
{
c=0x1;
}
else
{
c=0;
}
return(c);
}
程序就是上面这个,用28335的IIC对AT24C512进行读写,这里的GpioDataRegs.GPBDAT.bit.GPIO32进来的一直是1,是我哪里没设置对?还是这种数据要用中断接收?望大神指教!标题不对,SDA用的就是GpioDataRegs.GPBDAT.bit.GPIO32 展开
{
unsigned char i,c,d;
switch_sda_in();
DSP28x_usDelay(10000);
c=0;
for(i=0;i<8;i++)
{
d=GpioDataRegs.GPBDAT.bit.GPIO32; //SDA
d=d|0x01; // 输入1位
c=c|d;
c=c<<1;
}
// c=GpioDataRegs.GPBDAT.bit.GPIO32; //SDA 28335为32位 //c为8位数据
c=c&0x08;
if(c==0x08) //一直在发送的时候c==0x08;发送完c==0;
{
c=0x1;
}
else
{
c=0;
}
return(c);
}
程序就是上面这个,用28335的IIC对AT24C512进行读写,这里的GpioDataRegs.GPBDAT.bit.GPIO32进来的一直是1,是我哪里没设置对?还是这种数据要用中断接收?望大神指教!标题不对,SDA用的就是GpioDataRegs.GPBDAT.bit.GPIO32 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏15(财富值+成长值)
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询