老师您好!
我最近在用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、对于配置信息,因为涉及到高低电平的不断切换,所以会不断的寄存器赋值,这样会有什么不良后果吗?我这种赋值方法,会影响其他不必要位吗?
希望老师尽快回复,谢谢!