主题中讨论的其他器件:DAC7571
我不熟悉 I2C 通信、并编写了以下代码来连接 TI DAC7571。 我已正确连接所有内容、并已编写初始代码、现在仅传输 SIGN.ampAC。 代码对我来说似乎是正确的,但我仍然不知道为什么我无法通过 I2C_Transfer()成功进行传输。 有人能不能帮助我了解到底发生了什么错误? CCS Cloud 不会产生任何错误、只是从不传输数据。 很抱歉、代码有点乱、显然仍在进行中。 提前感谢。
#include #include #include #include /*驱动程序头文件*/ #include #include #include #include #include #include #include #include /*板头文件*/ #include "Board.h" uint8_t rxBuffer[0]; //接收缓冲 区 uint8_t txBuffer[2]; //发送缓冲 区 btransferool Done = false; bool openDone = true; bool 状态; 静态空 writeCallbackDefault (I2C_Handle handle、I2C_Transaction * transac、bool 结果){ //设置长度字节 if (结果){ transferDone =真; } 否则{ //事务失败,相应地执行... } }; struct{//用于存储信号振幅(最大值为4095) unsigned int ampac:12; unsigned int ampDC:12; }信号; /* ==== mainThread ==== // void *mainThread (void *arg0){ //局部变量 I2C_init(); I2C_Handle 句柄; I2C_Params 参数; I2C_Transaction i2cTrans; //配置 I2C 参数。 I2C_PARAMS_INIT (params); params.bitrate = I2C_400kHz; params.transferMode = I2C_MODE_CALLACK; params.transferCallbackFxn = writeCallbackDefault; //准备要发送的数据 signal.ampAC = 2047; signal.ampDC = signal.ampac/2; txBuffer[0]= signal.ampAC; txBuffer[1]= SIGNAL .ampAC >> 8; //初始化主 I2C 事务结构 i2cTran.writeBuf = txBuffer; i2cTrans.writeCount = 2; i2cTrans.readBuf =空; i2cTrans.ReadCount = 0; i2cTrans.slaveAddress = 0x4C; //打开 I2C 句柄= I2C_open (Board_I2C0、params); if (handle == NULL){ //打开 I2C 时出错 openDone = false; while (1); } //执行 I2C 传输(在回调模式下) I2C_transfer (handle、&i2cTrans); 返回(NULL); }