LattePanda Delta平台Unity中System.Device.Gpio引用及GPIO读取问题
LattePanda Delta Unity GPIO读取问题解决
一、UWP平台System.Device.Gpio引用无法识别的修复步骤
- 匹配NuGet包目标框架:UWP项目必须安装适配UWP版本的
System.Device.Gpio,别选错成.NET Framework/.NET Core版。打开NuGet包管理器,勾选“包括预发行版”,筛选目标框架为uap10.0.17763及以上(对应Windows IoT Core 1809+)。 - 检查Unity导出配置:Unity导出UWP项目时,将“.NET Scripting Backend”设为
.NET 4.x Equivalent;导出后在VS中右键项目→属性→应用程序,确认目标/最低版本选择对应Windows IoT Core版本。 - 手动补全项目引用:若NuGet安装后仍不识别,直接编辑VS项目的
.csproj文件,添加以下代码(替换为你安装的版本号):
<PackageReference Include="System.Device.Gpio" Version="2.1.0" />
- 添加上GPIO权限:UWP必须开启权限才能访问GPIO,打开
Package.appxmanifest,切换到“功能”标签勾选“通用GPIO”,或手动添加XML节点:
<Capabilities> <DeviceCapability Name="lowLevel" /> <DeviceCapability Name="gpio" /> </Capabilities>
二、pin.Read()返回值说明
pin.Read()返回的是**PinValue枚举类型**,仅包含两个成员:
PinValue.High:对应高电平,逻辑等价于1PinValue.Low:对应低电平,逻辑等价于0
如果需要转为整数使用,直接强制转换即可:
int pinState = (int)pin.Read(); // 结果为1(High)或0(Low)
额外提醒:LattePanda Delta的GPIO为数字引脚,若你之前串口读取的-1、0、1是模拟信号,需改用ADC引脚,结合Iot.Device.Bindings中的ADC类读取模拟值后再转换为对应范围。
内容的提问来源于stack exchange,提问作者christoph
相关产品推荐
相关产品推荐

