我嘗試使用I2C協議在運行windows 10 IOT build 14376內部人員的T-REX Manual here和運行Windows 10的樹莓派3之間進行通信。事情是,它總是崩潰,所以經過一些調試過程後,我發現它看起來不會從DeviceInformation.FinAllAsync(..)
中檢索到任何東西,並且導致在ArgumentOutOfRangeException
之後。它應該有一些東西我不明白,也許在設備能力或權限,微軟教程沒有提到hereI2C窗口iOT找不到DeviceInformation
var settings = new I2cConnectionSettings(0x07);
settings.BusSpeed = I2cBusSpeed.StandardMode;
var aqs = I2cDevice.GetDeviceSelector("I2C1");
var dis = await DeviceInformation.FindAllAsync(aqs);
int a = dis.Count; //is always equal to 0
然後,我有一個using (I2cDevice device = await I2cDevice.FromIdAsync(dis[0].Id, settings)){...}
其失敗
之前mentionned的ArgumentOutOfRangeException
我嘗試了第二種方式是使用此代碼:
I2CDevice device;
var settings = new I2cConnectionSettings(0x07);
settings.BusSpeed = I2cBusSpeed.StandardMode;
var controller = await Windows.Devices.I2c.I2cController.GetDefaultAsync();
device = controller.GetDevice(settings);
其產生NullReferenceException
到最後一行
它與I2C設備無關。在與該奴隸交談之前拋出異常。 – Jackie