从类外获取SPI温度数据我正在尝试编写一个“温度”类来处理通过SPI与我的RaspberryPi通信以读取一些温度数据。目标是能够从温度类外部调用GetTemp()方法,这样我就可以在程序的其余部分随时使用温度数据。我的代码设置如下:publicsealedclassStartupTask:IBackgroundTask{privateBackgroundTaskDeferraldeferral;publicvoidRun(IBackgroundTaskInstancetaskInstance){deferral=taskInstance.GetDeferral();温度t=新温度();//希望能够在我的程序的其余部分进行这样的调用,以便在需要时获取温度数据vardata=t.GetTemp();}}温度等级:classTemperature{privateThreadPoolTimertimer;专用SpiDevice热电偶;公共字节[]温度数据=空;公共温度(){InitSpi();timer=ThreadPoolTimer.CreatePeriodicTimer(GetThermocoupleData,TimeSpan.FromMilliseconds(1000));}//应该将最近读取的数据返回到这个类之外publicbyte[]GetTemp(){returntemperatureData;}privateasyncvoidInitSpi(){try{varsettings=newSpiConnectionSettings(0);settings.ClockFrequency=5000000;settings.Mode=SpiMode.Mode0;字符串spiAqs=SpiDevice.GetDevice选择器(“SPI0”);vardeviceInfo=awaitDeviceInformation.FindAllAsync(spiAqs);热电偶=awaitSpiDevice.FromIdAsync(deviceInfo[0].Id,settings);}catch(Exceptionex){thrownewException("SPIInitializationFailed",ex);}}privatevoidGetThermocoupleData(ThreadPoolTimertimer){byte[]readBuffer=newbyte[4];热电偶.Read(readBuffer);温度数据=读取缓冲区;当我在GetThermocoupleData()中添加断点时,我可以看到我正在获取正确的传感器数据值,但是当我从我的类外部调用t.GetTemp()时,我的值始终为空。谁能帮我弄清楚我做错了什么?谢谢。必须至少调用一次GetThermocouplelerData()才能返回数据。在您的代码示例中,它将在实例化后的1秒内运行。只需在try块的最后一行的InitSpi中添加对GetThermocoupleData(null)的调用,这样它就已经从至少一个调用开始了。以上就是C#学习教程:课外获取SPI温度数据分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
