一、硬件说明:
主板上J2901 插座是LED外接插座,电路和板载LED2901相连接.我们需要用到inpoutx64库进行LED操作.
二、控制方法:
LED控制,是对板载SUPER IO芯片的控制,原理是根据芯片通讯协议进行控制.
LED控制地址和控制方式说明
LED | 控制寄存器(addr) | 状态控制(ctrlCode) |
---|---|---|
红色LED | 0XB1 | 0X00开,0X02关 |
绿色LED | 0XC2 | 0X00开,0X40关 |
红色LED呼吸效果 | 0XF8 | 0X00开,0X11关 |
绿色LED呼吸效果 | 0XF8 | 0X00开,0X1E关 |
三、核心控制代码:
//addr LED控制寄存器,ctrlCode控制方式
bool Led_Ctrl00(byte addr, byte ctrlCode)
{
if (idOK())
{
//SUPER IO芯片进入模式
SetPortVal(0x2E, 0x87, 1);
SetPortVal(0x2E, 0x01, 1);
SetPortVal(0x2E, 0x55, 1);
SetPortVal(0x2E, 0x55, 1);
//选择LED设备
SetPortVal(0x2E, 0x07, 1);
SetPortVal(0x2F, 0x07, 1);
//控制LED状态
SetPortVal(0x2E, addr, 1);
SetPortVal(0x2F, ctrlCode, 1);
//SUPER IO芯片退出模式
SetPortVal(0x2E, 0x02, 1);
SetPortVal(0x2F, 0x02, 1);
return true;
}
return false;
}
四、使用样例软件控制说明:
关于LED测试样例,将提供inpoutx64操作代码的C#样例程序.
测试软件使用
点如软件上的选框,可以观察到对应LED状态变化.
测试软件下载:
Execution File
测试软件源码下载:
Source Code