spislave.c
来自「用单片机的SPI串口实现数据发送和接收的C语言代码」· C语言 代码 · 共 51 行
C
51 行
#include <avr/io.h>
void USART_Init(unsigned int baud);
void USART_Transmit(unsigned char data);
void SPI_SlaveInit(void);
char SPI_SlaveReceive(void);
main(void)
{
char rec;
USART_Init(25);
SPI_SlaveInit();
while(1)
{
rec=SPI_SlaveReceive();
USART_Transmit(rec);
}
}
void SPI_SlaveInit(void)
{
DDRB=0x20;
SPCR=(1<<SPE);
}
char SPI_SlaveReceive(void)
{
while(!(SPSR&(1<<SPIF)))
;
return SPDR;
}
void USART_Init(unsigned int baud)
{
UBRR0H = (unsigned char)(baud>>8);
UBRR0L = (unsigned char)baud;
UCSR0B|=(1<<RXEN0)|(1<<TXEN0);
UCSR0C|=(1<<URSEL0)|(3<<UCSZ00);
}
void USART_Transmit(unsigned char data)
{
while((UCSR0A&(1<<UDRE0))==0)
;
UDR0=data;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?