?? pucspi.h
字號:
/*Programed by zhoudb 2002-6-21*/
#ifndef __GENERAL_PORT_SPI_H
#define __GENERAL_PORT_SPI_H
/*物料層的相關定義*/
#define BitMask 0x80
#define SS_EN 0
#define SS_DIS 1
#define HALFPERIOD 1 /*用于調整SCK的半周期*/
#define SCK(val) SET_PB_BIT(30,val)
#define MOSI(val) SET_PB_BIT(29,val)
#define MISO GET_PB_BIT(28)
#define SS1(val) SET_PB_BIT(31,val)
#define SS2(val) SET_PB_BIT(27,val)
/*數據鏈路層的相關定義*/
#define YYES 1
#define NNO 0
#define COMMANDWRITE 0x61
#define COMMANDREAD 0x60
#define IDMASK 0xf1
#define SOFTWARETIMEOUT 1000
#define MAXTIMEOUTNUM 6
#define RESETTIME 3
/*BCM5328的SPI相關寄存器地址*/
#define SPI_DATA0 0xf0
#define SPI_DATA1 0xf1
#define SPI_DATA2 0xf2
#define SPI_DATA3 0xf3
#define SPI_DATA4 0xf4
#define SPI_DATA5 0xf5
#define SPI_DATA6 0xf6
#define SPI_DATA7 0xf7
#define SPI_STS 0xfe
#define SPI_PAGE 0xff
/*BCM5328的SPI狀態寄存器的比特屏蔽字節*/
#define MASK_STS_SPIF 0x80
#define MASK_STS_RACK 0x20
#define MASK_STS_TXRDY 0x02
#define MASK_STS_RXRDY 0x01
typedef struct
{
unsigned char RegPageAddr;
unsigned char RegAddr;
unsigned char DataLength;
unsigned char DataBuf[8]; /*DataBuf[]是次高位的BYTE,DataBuf[0]是最高位的BYTE*/
unsigned char BcmID;
}BcmRegStruct;
typedef enum
{
BCM_OK=0, /*操作成功*/
BCM_INVALID_ID=1, /*無效的ID號*/
BCM_TIME_OUT=2, /*軟件超時*/
BCM_INVLAID_DATA_LENGTH=3,/*無效的數據長度,為了簡化協議,這兒的最大長度為8*/
}BCM_STATUS;
/*供應用層軟件調用的的接口函數*/
void Bcm5328SpiInit(void);
void Bcm5328CLK(void);
BCM_STATUS Bcm5328RegWrite(BcmRegStruct *RegStruct);
BCM_STATUS Bcm5328RegRead(BcmRegStruct *RegStruct);
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -