可以检测14路低电平、8路高电平;通过SPI接口和MCU连接;
//MC33972
MC33972Handle(0x01,0xFF); //设置SP0-SP7为 高电平有效
MC33972Handle(0x09,0xFF); //设置SP0-SP7为 高阻状态
MC33972Handle(0x05,0x3FFF); //设置SG0-SG13湿润电流为16mA
MC33972Handle(0x08,0x3FFF); //设置SG0-SG13湿润电流定时器为20ms
//Cmd 命令字 Switch Status Command 0x00
//Data 命令数据
//Res 返回值,表示引脚状态
unsigned long MC33972Handle(unsigned char Cmd,unsigned short DData)
{
unsigned char i = 0;
unsigned long Res = 0;
gpio_set(MCU_MC_SCLK,0);
gpio_set(MCU_MC_CS,0);
for(i=0;i<8;i++)
{
gpio_set(MCU_MC_SCLK,1);
if(Cmd & 0x80)
gpio_set(MCU_MC_MOSI,1);
else
gpio_set(MCU_MC_MOSI,0);
Cmd <<= 1;
gpio_set(MCU_MC_SCLK,0);
Res <<= 1;
if(gpio_get(MCU_MC_MISO))
Res |= 0x01;
}
for(i=0;i<16;i++)
{
gpio_set(MCU_MC_SCLK,1);
if(DData & 0x8000)
gpio_set(MCU_MC_MOSI,1);
else
gpio_set(MCU_MC_MOSI,0);
DData <<= 1;
gpio_set(MCU_MC_SCLK,0);
Res <<= 1;
if(gpio_get(MCU_MC_MISO))
Res |= 0x01;
}
gpio_set(MCU_MC_CS,1);
return(Res);
}