📄 spi.h
字号:
#ifndef __SPI_H__
#define __SPI_H__
#define RXTX_SIZE 0x100000
typedef enum _SPI_channel {
SPI_CHANNEL0 = 0,
SPI_CHANNEL1 = 1,
SPI_CHANNEL_MAX
} SPI_channel;
typedef enum _SPI_mode {
SPI_POLLING = 0,
SPI_INT = 1,
SPI_DMA_TX = 2,
SPI_DMA_RX = 3
} SPI_mode;
typedef enum _SPI_who {
SPI_SLAVE = 0,
SPI_MASTER = 1
} SPI_who;
typedef enum _SPI_direction {
SPI_TX = 0,
SPI_RX = 1
} SPI_direction;
typedef enum _SPI_clock_type {
SPI_CLOCK_HIGH = 0,
SPI_CLOCK_LOW = 1
}SPI_clock_type;
typedef enum _SPI_clock_phase {
SPI_FORMAT_A = 0,
SPI_FORMAT_B = 1
} SPI_clock_phase;
typedef enum _SPI_auto_garbage {
SPI_NORMAL_MODE = 0,
SPI_AUTO_GARBAGE = 1
} SPI_auto_garbage;
typedef struct _SPI_control_reg {
SPI_auto_garbage garbage_TAGD:1;
SPI_clock_phase format_CPHA:1;
SPI_clock_type clock_CPOL:1;
SPI_who who_MSTR:1;
SPI_who who_sck_en:1;
SPI_mode mode:2;
SPI_direction direction:1;
unsigned char tx_fifo:1;
unsigned char rx_fifo:1;
unsigned char tx_fifo_reset:1;
unsigned char rx_fifo_reset:1;
unsigned int garbage:40;
} SPI_control_reg;
typedef enum _SPI_feedback_clk_en {
SPI_FEEDBACK_DISABLE = 0,
SPI_FEEDBACK_ENABLE = 1
} SPI_feedback_clk_en;
typedef enum _SPI_multi_master_err_detect_en {
SPI_MULTI_MASTER_ERR_DETECT_DISABLE = 0,
SPI_MULTI_MASTER_ERR_DETECT_ENABLE = 1
} SPI_multi_master_err_detect_en;
typedef enum _SPI_master_CS_out {
SPI_CS_ACTIVE = 0,
SPI_CS_INACTIVE = 1
} SPI_master_CS_out;
typedef enum _SPI_master_out_keep {
SPI_MASTER_OUT_KEEP_RELEASE = 0,
SPI_MASTER_OUT_KEEP_DRIVE = 1
} SPI_master_out_keep;
typedef struct _SPI_pin_control_reg {
SPI_master_out_keep out_keep:1;
SPI_master_CS_out cs_out:1;
SPI_multi_master_err_detect_en err_detect:1;
SPI_feedback_clk_en feedback_clk_en:1;
unsigned int garbage:28;
} SPI_pin_control_reg ;
typedef struct _SPI_port {
int number;
SPI_control_reg spi_con;
SPI_pin_control_reg spi_pin_con;
}SPI_port;
#ifdef __cplusplus
extern "C" {
#endif
void Ch21_Spi(void);
void SPI_master_slave_test(void);
void SPI_loop_test(void);
void SPI_master_master_test( void );
void SPI_master_loop_int_test(void);
void SPI_slave_int_master_polling_test( void );
void Test_Spi1_MS_poll(void);
void SPI_slave_polling_master_polling_test( void );
void SPI_slave_polling_master_polling_test_FIFO(void);
void SPI_master_DMA_slave_polling_test(void);
void SPI_slave_DMA_master_polling_test(void);
void SPI_master_FIFO_DMA_slave_polling_test(void);
void SPI_slave_FIFO_DMA_master_polling_test(void);
#ifdef __cplusplus
}
#endif
#endif /*__SPI_H__*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -