这是瑞萨官方网站的例程的一部分关于I2C的
#define iic_sda_d pd1_2
#define iic_sda p1_2
#define iic_scl_d pd1_3
#define iic_scl p1_3
/************************************************************************************
Name : initIicBus
Parameters : None
Returns : None
Description : initialize I2C-BUS port
Note :
************************************************************************************/
void initIicBus(void)
{
iic_sda_d = 0; /* SDA input ("H" state) */
iic_scl_d = 0; /* SCL input ("H" state) */
}
/************************************************************************************
Name : StartCondition
Parameters : None
Returns : None
Description : Output Start Condition (I2C-BUS)
Note : *1 adjust a wait time
************************************************************************************/
void StartCondition(void)
{
iic_scl = 0; /* SCL="L" */
iic_scl_d = 1; /* SCL output */
_WaitTime1us(); /* wait *1 */
iic_sda_d = 0; /* SDA="H" */
_WaitTime1us(); /* wait */
_WaitTime1us(); /* wait *! */
iic_scl = 1; /* SCL="H" */
_Wait_tSU_STA; /* wait */
iic_sda = 0; /* SDA="L" */
iic_sda_d = 1; /* SDA output */
_Wait_tHD_STA; /* wait */
_WaitTime1us(); /* wait *1 */
iic_scl = 0; /* SCL="L" */
}
iic_sda_d不是P12方向寄存器吗?怎么iic_sda_d = 0注释的意思是SDA="H",
而iic_sda = 0 的注释的意思SDA = "L",i
ic_sda_d =1注释的意思是“SDA output"
那iic_sda_d是方向寄存器还是输出电平的
那iic_sda的作用又什么哪?
那是不是改为如下
void StartCondition(void)
{
iic_scl = 0; /* SCL="L" */
iic_scl_d = 1; /* SCL output */
_WaitTime1us(); /* wait *1 */
iic_sda = 1; /* SDA="H" */
_WaitTime1us(); /* wait */
_WaitTime1us(); /* wait *! */
iic_scl = 1; /* SCL="H" */
iic_sda_d =1; /* SDA output */
_Wait_tSU_STA; /* wait */
iic_sda = 0; /* SDA="L" */
_Wait_tHD_STA; /* wait */
_WaitTime1us(); /* wait *1 */
iic_scl = 0; /* SCL="L" */
}
请教各位高手帮忙说一下