电路输出电压一直不对,要么一直输出电源电压,要么输出一些奇怪的电压值。
写入时序是这样:开始、写入0x98、写入0x10、写入数据高位、写入数据低位、停止
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
/*写DAC8571*/ void Write8571(unsigned int dat) { GIEH=0; //关中断,防止I2C通讯错误 SEN1 = 1; //启动 CheckSSPIF(); SSP1BUF = 0x98; //器件在I2C总线地址 CheckSSPIF(); if(ACKSTAT1) //判断是否已接收应答 return; SSP1BUF = 0x10; //子地址 CheckSSPIF(); if(ACKSTAT1) return; SSP1BUF = dat>>8; //数据 CheckSSPIF(); if(ACKSTAT1) return; SSP1BUF = dat&0xFF; //数据 CheckSSPIF(); if(ACKSTAT1) return; PEN1 = 1; //停止 CheckSSPIF(); GIEH=1; //开中断,防止I2C通讯错误 }