主题中讨论的其他器件:ADS1115
工具与软件:
需要紧急帮助、仅修改代码"i2c_ex4_eeprom_polling"的应用程序级以连接 ADS1115芯片后、我的 I2C 时钟无法生成。
#include "driverlib.h" #include "device.h" #include "i2cLib_FIFO_polling.h" #define I2C_BASE I2CA_BASE #define ADS1115_I2C_ADDR 0x48 void I2C_Init(void); void I2C_WriteRegister(uint8_t reg, uint16_t value); uint16_t I2C_ReadRegister(uint8_t reg); uint16_t ADS1115_ReadConversion(void); void ADS1115_WriteConfig(uint16_t config); void I2C_Init(void) { I2C_disableModule(I2C_BASE); I2C_initMaster(I2C_BASE, DEVICE_SYSCLK_FREQ, 400000, I2C_DUTYCYCLE_50); I2C_setSlaveAddress(I2C_BASE, ADS1115_I2C_ADDR); I2C_setConfig(I2C_BASE, I2C_MASTER_SEND_MODE); I2C_enableModule(I2C_BASE); } void I2C_WriteRegister(uint8_t reg, uint16_t value) { while(I2C_getStatus(I2C_BASE) & I2C_STS_BUS_BUSY); I2C_setConfig(I2C_BASE, I2C_MASTER_SEND_MODE); I2C_putData(I2C_BASE, reg); while(!(I2C_getStatus(I2C_BASE) & I2C_STS_TX_DATA_RDY)); I2C_putData(I2C_BASE, (value >> 8) & 0xFF); while(!(I2C_getStatus(I2C_BASE) & I2C_STS_TX_DATA_RDY)); I2C_putData(I2C_BASE, value & 0xFF); while(!(I2C_getStatus(I2C_BASE) & I2C_STS_TX_DATA_RDY)); I2C_sendStopCondition(I2C_BASE); } uint16_t I2C_ReadRegister(uint8_t reg) { uint16_t value = 0; while(I2C_getStatus(I2C_BASE) & I2C_STS_BUS_BUSY); I2C_setConfig(I2C_BASE, I2C_MASTER_SEND_MODE); I2C_putData(I2C_BASE, reg); while(!(I2C_getStatus(I2C_BASE) & I2C_STS_TX_DATA_RDY)); I2C_sendStopCondition(I2C_BASE); I2C_setConfig(I2C_BASE, I2C_MASTER_RECEIVE_MODE); value = I2C_getData(I2C_BASE) << 8; I2C_sendAck(I2C_BASE); while(!(I2C_getStatus(I2C_BASE) & I2C_STS_RX_DATA_RDY)); value |= I2C_getData(I2C_BASE); I2C_sendStopCondition(I2C_BASE); return value; } void ADS1115_WriteConfig(uint16_t config) { I2C_WriteRegister(0x01, config); } uint16_t ADS1115_ReadConversion(void) { return I2C_ReadRegister(0x00); } void main(void) { Device_init(); Device_initGPIO(); I2C_Init(); ADS1115_WriteConfig(0x8583); // Example Configuration while(1) { uint16_t adcValue = ADS1115_ReadConversion(); DEVICE_DELAY_US(500000); } }
我在下面提供了我的代码,我对 C2000平台相当陌生,我需要一个指导,以了解我做了错误或留下的任何配置???