【发布时间】:2018-03-21 11:15:04
【问题描述】:
这篇文章可能与Windows IoT and DS3231 RTC clock 重复,但它似乎对我不起作用。我没有在这种环境中使用 i2c 的经验。
我的预期功能是,
- 在启动时检查是否有任何网络连接来更新系统时钟
- 如果离线系统将从
DS3231读取datetime并更新 系统datetime -
datetime从datepicker的任何更改或timepicker它将更新DS3231
我的问题是
- 如何检查网络可用性以更新系统时钟。
-
从
DS3231阅读 分别使用i1cdevice.writeread需要writeread address?i2c会自动读取所有数据直到收到stop位还是我必须设置一个计数器?private const byte DS3231_I2C_WADDR = 0xD0; private const byte DS3231_I2C_RADDR = 0xD1; private I2cDevice DS3231_RTC; byte[] i2CWriteBuffer; byte[] i2CReadBuffer; private async void Read_DS3231_RTC() { var settings = new I2cConnectionSettings(DS3231_I2C_RADDR); settings.BusSpeed = I2cBusSpeed.StandardMode; var controller = await I2cController.GetDefaultAsync(); DS3231_RTC = controller.GetDevice(settings); try { DS3231_RTC.WriteRead(new byte[] { DS3231_I2C_RADDR }, i2CReadBuffer); } catch (Exception e) { StatusMessage.Text = "Fail to Init I2C:" + e.Message; return; } } -
写信给
DS3231有dateicker&timepicker用于时间设置 设置datetime后如何更新为DS3231private void DatePicker_DateChanged(object sender, DatePickerValueChangedEventArgs e) { DateTimeSettings.SetSystemDateTime(e.NewDate.UtcDateTime); SetTime_DS3231(); } private void TimePicker_TimeChanged(object sender, TimePickerValueChangedEventArgs e) { var currentDate = DateTime.Now.ToUniversalTime(); var newDateTime = new DateTime(currentDate.Year, currentDate.Month, currentDate.Day, e.NewTime.Hours, e.NewTime.Minutes, e.NewTime.Seconds); DateTimeSettings.SetSystemDateTime(newDateTime); }
谢谢。
【问题讨论】:
标签: c# uwp raspberry-pi3 windows-iot-core-10 real-time-clock