主要是SPI操作,芯片寄存器。
命令字节 操作数据 寄存器描述 读/写 默认数值 0x00 000 0 000 0 0x00 GSR -GPIO状态 只读 0xXX 0x01 000 0 001 0 0x02 OCR – 输出控制 读/写 0xff 0x02 000 0 010 0 0x04 PIR -输入极性反转 读/写 0x00 0x03 000 0 011 0 0x06 GCR- GPIO 组态/构造 读/写 0xFF 0x04 000 0 100 0 0x08 PUR-输入内部上拉电阻启用/禁用 读/写 0x00 0x05 000 0 101 0 0x0A IER-输入中断使能 读/写 0x00 0x06 000 0 110 0 0x0C TSCR - 输出三态控制 读/写 0x00 0x07 000 0 111 0 0x0E ISR -输入中断状态 读 0x00 0x08 000 1 000 0 0x10 REIR - 输入上升沿中断使能 读/写 0x00 0x09 000 1 001 0 0x12 FEIR - 输入下降沿中断使能 读/写 0x00 0x0A 000 1 010 0 0x14 IFR - 输入滤波器启用/禁用 读/写 0xFF
//SPI写函数
void Write_Data(unsigned char DAT)
{
unsigned char i;
SCK = 0;
for(i=0;i<8;i++)
{
SDI = DAT&0x80;
Delay_10uS();
SCK = 1;
Delay_10uS();
DAT <<= 1;
SCK = 0;
}
//主程序调用函数
void main(void){ Delay_1S();
Write_Data(0x03); //选定0x03 GCR- GPIO 组态寄存器, //该成0x06也不行
Write_Data(0x00); //写入0x00 使所有IO为 输出IO
Write_Data(0x01); //选定0x01 OCR – 输出控制寄存器, //该成0x02也不行
Write_Data(0x0f);//写入0x0F 使高四位IO为低电平,第四位IO为高电平
while(1);
}
|