请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
尊敬的 TI 专家:
我正在使用 TM4C123GXL 器件进行项目、需要从连接到 TM4C123GXL 板的 I2C 从器件进行写入和读取。 ERROR_t TI_I2C_WriteRead (无符号字符 SLA、
int num_WRITE_Bytes、
unsigned char write_data[]、
int num_read_Bytes、
unsigned char read_buffer [])
{
返回 I2CMRead (&TFA_sI2CInst、SLA、
Write_data、
num_WRITE_Bytes、
Read_buffer、
num_read_Bytes、
null、
null);
}
{
//配置系统频率。
//
/*ROM_SysCtlClockSet*/SysCtlClockSet (SYSCTL_SYSDIV_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHz |
SYSCTL_OSC_MAIN);
//
//初始化 UART。
//
ConfigureUART();
//
//清除终端并打印欢迎消息。
//使用前必须启用 I2C3外设。
//
/*ROM_SysCtlPeripheralEnable*/SysCtlPeripheralEnable (SYSCTL_Periph_I2C3);
/*ROM_SysCtlPeripheralEnable*/SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
//
//为端口 D0和 D1上的 I2C3功能配置引脚复用。
//如果您的器件不支持引脚复用、则无需执行此步骤。
//
/*ROM_GPIOPinConfigure*/GPIOPinConfigure (GPIO_PD0_I2C3SCL);
/*ROM_GPIOPinConfigure*/GPIOPinConfigure (GPIO_PD1_I2C3SDA);
//
//为这些引脚选择 I2C 功能。 此函数也会
//为 I2C 操作配置 GPIO 引脚,将其设置为
//开漏操作,弱上拉。 请参阅数据表
//查看每个引脚分配了哪些功能。
//
GPIOPinTypeI2CSCL (GPIO_PORTD_BASE、GPIO_PIN_0);
/*ROM_GPIOPinTypeI2C/GPIOPinTypeI2C (GPIO_PORTD_BASE、GPIO_PIN_1);
HWREG (GPIO_PORTD_BASE + GPIO_PUR)= 0x3;
//
//初始化 LED 的 GPIO
//
/*ROM_SysCtlPeripheralEnable*/SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF);
/*ROM_GPIOPinTypeGPIOOutput*/GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_1);
/*ROM_GPIOPinWrite*/GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_1、0x00);
//
/*ROM_IntMasterEnable*/IntMasterEnable();
//
//初始化 I2C3外设。
//
I2CMInit (&TFA_sI2CInst、I2C3_base、INT_I2C3、0xff、0xff、
/*ROM_SysCtlClockGet */SysCtlClockGet ();
I2CMasterInitExpClk (I2C3_base、SysCtlClockGet ()、true/* true*/);//400KBps
然后调用我的函数
TI_I2C_WriteRead () 类似
TI_I2C_WriteRead (slave_address、
sizeof (write_data)、write_data、sizeof (read_buffer)、read_buffer);
}
然而,从 I2C 读取的 SAW 没有重新显示正确的值,此函数是否有用? 如果没有,则可以使用任何其他可能的函数从 I2C 读取/写入缓冲器?
有什么想法吗?
maw、