⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi.h

📁 三星2413芯片的测试代码,对进行驱动开发很有帮助.
💻 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 + -