This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6726模拟IIC相关问题求解



老师您好!

我最近在用C6726做一个项目,使用GPIO来模拟IIC通讯,所以用McASP中的PDIR、PDOUT、PDIN寄存器来分别配置管脚方向、输入、输出。请问这样会有什么弊端吗?

配置信息:

#define SDA_OUT      (MCASP0_PDIR  |= 0x00000010)
#define SCL_OUT      (MCASP0_PDIR  |= 0x00000008)
#define SDA_IN       (MCASP0_PDIR  &= ~0x00000010)
#define SDA_HI       (MCASP0_PDOUT |= 0x00000010)
#define SDA_LOW      (MCASP0_PDOUT &= ~0x00000010)
#define SCL_HI       (MCASP0_PDOUT |= 0x00000008)
#define SCL_LOW      (MCASP0_PDOUT &= ~0x00000008)
#define SDA_READ_HI  (MCASP0_PDIN  &= 0x00000010)

部分代码:

void start(void)
{
 SCL_OUT;
 SDA_OUT;
 SDA_HI;
 SCL_HI;
 Delay_1us(10);
 SDA_LOW;
 Delay_1us(5);
 SCL_LOW;
 Delay_1us(25);
}

1、对于这部分代码,比如说执行完SDA_HI;之后,这个SDA管脚能保持多久的高电平?在我没有执行SDA_LOW之前,他能一直保持高电平吗?

2、C6726有没有相关的库函数能直接操作引脚?

3、对于配置信息,因为涉及到高低电平的不断切换,所以会不断的寄存器赋值,这样会有什么不良后果吗?我这种赋值方法,会影响其他不必要位吗?

希望老师尽快回复,谢谢!