您的位置:首页 > 其它

AVR复习笔记--AVR单片机SPI多机通讯【包括数据回传与接收】【0926】

2009-09-26 16:53 232 查看
AVR复习笔记—SPI多机通信

最近决定复习下AVR单片机,其实也是为了借此复习下几种简单的通信协议,包括串口,SPI,I2­C等。

本来以为一两个晚上就能搞定的事儿,没想到竟耗费了一周晚上空余的时间。

当然主要是这次的要求要提高点,实现SPI的多机通信,

不但要发数据还要回传数据。

实际中还是遇到了比我想象中要大的多的困难。

即使是现在的实现方式也不是很理想。

下面是spi部分的代码,由于spi接收发送用的同一终端,感觉使用起来形式不怎么样,还是采用了轮询标志位的方式

Code
#include "basic.h"
#include "usart.h"
#include "spi.h"
int main( void )
{

usart_init(9600);
spi_init(0);

char tmp=0;
DDRB&=~((1<<4));
PORTB|=((1<<4));

while(1)
{
if(PINB_PINB4==0) //检测当前总线是否被占用
{
tmp=spi_trans('1');
usart_send(tmp);
}
}

return 0;
}

下面为proteus下的截图


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: