工具与软件:
当我使用德州处理器更改了 DS1307数据并使用 Arduino 进行了检查时、我向正确的寄存器分配了正确的值。 但当我想在德克萨斯学习时,我遇到了下图。
uint8_t readSecondsFromDS1307 (void){
uint8_t 秒;
uint8_t regAddr =秒;
// DS137den saniye register'ının ó n adresini gönder ñ o.
DL_I2C_fillControllerTXFIFO (I2C_INST、®Addr、1);
while (! (DL_I2C_getControllerStatus (I2C_INST)和 DL_I2C_CONTROLLER_STATUS_IDLE);
// 1 baytlık veri (Saniyeler) okumak için kontrolcü transferini başlat
DL_I2C_startControllerTransfer (I2C_INST、DS1307_ADDRESS、DL_I2C_CONTROLLER_DIRECTION_RX、1);
// Veri FIFo'ya gelene kadar bekle ve Oku
while (DL_I2C_isControllerRXFIFOEMpty (I2C_INST));
秒= DL_I2C_receiveControllerData (I2C_INST);
if (DL_I2C_getControllerStatus (I2C_INST)和 DL_I2C_CONTROLLER_STATUS_ERROR){
printf ("I2C Okuma Hatası!\n");
}
// Okunan saniyeleri Bcd'den çevir formata ondalık ve döndür
//返回 bcdToDec (秒);
返回秒数;
}