主要是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);
}
|