AVR 单片机SPI 通讯实例程序 一个SPI 的实例,通过SPI 实现两机通讯, 采用中断方式实现双全工通讯
本例用两MEGA8515 实现,连接为: MISO----MISO MOSI----MOSI SCK ----SCK /SS ----/SS 将要发送的数据加载到发送缓冲区的函数 fill_tx_buffer 和从接收缓冲区读出数据的函数read_rx_buffer 未给出,根据各自需求请自己完成
#define SPI_RX_BUFFER_SIZE 10 #define SPI_RX_BUFFER_MASK ( SPI_RX_BUFFER_SIZE - 1 ) #define SPI_TX_BUFFER_SIZE 10 #define SPI_TX_BUFFER_MASK ( SPI_TX_BUFFER_SIZE - 1 ) #define SET_SPI_MODE PORTB
4 #define SPI_MODE PINB
4 static unsigned char SPI_RxBuf[SPI_RX_BUFFER_SIZE]; static volatile unsigned char SPI_RxHead; static unsigned char SPI_TxBuf[SPI_TX_BUFFER_SIZE]; static volatile unsigned char SPI_TxHead; //****************************************** // SPI 中断服务程序 //****************************************** interrupt [SPI_STC] void spi_isr(void) { unsigned char data; if(spi_m==0) //如果