请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C1294NCPDT 主题中讨论的其他器件:HDC2080
工具/软件:Code Composer Studio
我在 HDC2080传感器上读取和写入数据时遇到问题、如果我连续添加一些写入命令、则数据不会写入传感器...
如果我尝试按顺序读取数据、所有读数都会返回相同的值、有时与第一次读取的值相同、有时也与第二次读取的值相同。
这可能是什么?
void initI2C9 (uint32_t clock1) { ROM_SysCtlPeripheralEnable (SYSCTL_Periph_I2C9); ROM_SysCtlPeripheralReset (SYSCTL_Periph_I2C9); ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA); ROM_GPIOPinConfigure (GPIO_PA0_I2C9SCL); ROM_GPIOPinConfigure (GPIO_PA1_I2C9SDA); ROM_GPIOPinTypeI2CSCL (GPIO_Porta_base、GPIO_PIN_0); ROM_GPIOPinTypeI2C (GPIO_Porta_base、GPIO_PIN_1); ROM_I2CMasterInitExpClk (I2C9_BASE、clock1、true); HWREG (I2C9_BASE + I2C_O_FIFOCTL)= 80008000; } uint8_t buf; uint8_t readI2C9 (uint16_t DEVICE_ADDRESS、uint16_t DEVICE_register) { ROM_I2CMasterSlaveAddrSet (I2C9_BASE、DEVICE_ADDRESS、false); ROM_I2CMasterDataPut (I2C9_BASE、DEVICE_REGISTER); ROM_I2CMasterControl (I2C9_BASE、I2C_MASTER_CMD_SINGLE_SEND); while (ROM_I2CMasterBusy (I2C9_BASE)); ROM_I2CMasterSlaveAddrSet (I2C9_BASE、DEVICE_ADDRESS、TRUE); ROM_I2CMasterControl (I2C9_BASE、I2C_MASTER_CMD_SINGLE_Receive); while (ROM_I2CMasterBusy (I2C9_BASE)); buf= ROM_I2CMasterDataGet (I2C9_BASE); return (buf); } void writeI2C9 (uint16_t device_address、uint16_t device_register、uint8_t device_data) { ROM_I2CMasterSlaveAddrSet (I2C9_BASE、DEVICE_ADDRESS、false); ROM_I2CMasterDataPut (I2C9_BASE、DEVICE_REGISTER); ROM_I2CMasterControl (I2C9_BASE、I2C_MASTER_CMD_BURST_SEND_START); while (ROM_I2CMasterBusy (I2C9_BASE)); ROM_I2CMasterSlaveAddrSet (I2C9_BASE、DEVICE_ADDRESS、TRUE); ROM_I2CMasterDataPut (I2C9_BASE、DEVICE_DATA); ROM_I2CMasterControl (I2C9_BASE、I2C_MASTER_CMD_BURST_Receive_finish); while (ROM_I2CMasterBusy (I2C9_BASE)); }