如何在 windows (Win 10) 上与非树莓派设备的 GPIO 通信?

How to communicate with GPIO on windows (Win 10) for non raspberry device?

我有一块主板 (KINO-DH310) windows 10,GPIO 控制器显示在 设备管理器 -> 系统设备 -> Interl(R) 串行 IO GPIO 主机控制器

我应该如何开始简单地 I/O 使用此控制器?我尝试过不同的策略,不同的编程语言,但没有任何影响。我在网上看到的大多数示例/示例代码都是针对 raspberry pi 的,似乎对我不起作用。有没有我没有掌握的概念?

我尝试使用汇编(来自 C++ 应用程序)将输出引脚切换为低电平和高电平

KINO-DH310推荐组装: Digital Output is 1001b

MOV AX, 6F09H ;setting the digital port as output
MOV BL, 09H   ;digital value is 09H
INT 15H

我的 C++ 代码:

__asm {
mov AX, 6F09H
mov BL, 00H
INT 15H        <--- Generates "Access Violation reading location 0xFFFFFFFF" error
};

这总是会产生访问冲突,因为您可能会访问会损害系统的内存。有没有办法抑制这种情况?

我的 C# 代码:

var gpio = GpioController.GetDefault();

if (gpio == null)
    return;      <--- Always returns null

始终生成空值。我希望因为我可以在设备管理器中看到它,Windows 可以检测到它可以访问 GPIO 控制器。

任何澄清将不胜感激,即使答案是 Windows 不支持它(我希望不是这种情况)

当 CPU 处于所有现代操作系统都使用的保护模式时,您不能使用 BIOS 中断。查看您的电路板手册,您使用的示例似乎适用于 bare-metal 应用程序。

就使用 C# 而言,GpioController class 似乎仅在 Windows IoT 上受支持。

应该可以通过与驱动程序接口来使用 IO,但是相关信息很难找到,所以你可能运气不好。

只是想在有人尝试做类似的事情时提供更新。最后,我需要从主板制造商那里获得SDK。 (IEI)

BIOS 中有一个小错误,但他们很好地给我打了 BIOS 补丁,更新 BIOS 版本后,SDK 完美运行。