?? x5045_spi.c
字號:
void Port_IO_Init()
{
P0MDOUT = 0x10;
P1MDOUT = 0x90;//0x8F;
P2MDOUT = 0x28;
P3MDOUT = 0x0F;
P0SKIP = 0xCF;
P1SKIP = 0xB8;//0xBF;
P2SKIP = 0x07;
P3SKIP = 0x0F;
XBR0 = 0x03;
XBR1 = 0xC1;
XBR2 = 0x01;
void SPI_Init()
{
SPI0CFG = 0x60; // Master Mode/ SCK is low in Idle/ Data on 2rd Edge of SCK
SPI0CN = 0x01; // Enable SPIO/3Wire
SPI0CKR = 0x6d;// 45k // 0x6D; // SPI CLOCK: 100KHz
}
void SPI_SendByte(uint8 dat)
{
SPIF = 0;
SPI0DAT = dat;
while(SPIF == 0);
}
uint8 SPI_GetByte(void)
{
SPIF=0;
SPI0DAT=0x00; // 隨便發送一個數據以產生讀時鐘
while(!SPIF);
return SPI0DAT ;
}
uint8 X5045_Read_Reg()
{
uint8 idata u8_Data;
X5045_CS = 0;
nop();
SPI_SendByte(RDSR); // 發送讀寄存器指令
u8_Data = SPI_GetByte();
X5045_CS = 1;
nop();
return u8_Data;
}
unsigned char X5045_WaitFree()
{
unsigned char idata i;
for(i=0;i<255;i++)
{
CLEAR_WD;
if((X5045_Read_Reg()&0x01)==0)
return 1;
}
return 0;
}
uint8 X5045_Write_Reg(uint8 u8_RegData)
{
X5045_WaitFree(); // 等待寫完畢
X5045_WREN();//寫使能
X5045_CS = 0;
nop();
SPI_SendByte(WRSR); // 發送寫寄存器指令
SPI_SendByte(u8_RegData); // 發送寄存器的設置值
X5045_CS = 1;
nop();
X5045_WaitFree(); ://等待寫完成
X5045_WRDI();// 關閉寫使能
return 1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -