📄 spislave.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -