//主机程序
#include<avr/io.h>
#include<util/delay.h>
void spi_init(void)
{
//PORTB |= (1<<PB4); //按照spi协议的握手方式手动操作ss(低):在开始传输前将其拉低,传输结束后再将其抬高。
PORTB |= (1<<PB0);
//DDRB |= (1<<DDB4) | (1<<DDB5) | (1<<DDB7);//ss(低)、sck、mosi 输出方式
DDRB |= (1<<DDB0) | (1<<DDB1) | (1<<DDB2);
SPCR = 0x70; //使能spi、主机模式、低位在先、模式0、fosc/2
}
void spi_mt(char cData)
{
//PORTB &=~ (1<<PB4); //开始传输前拉低ss
PORTB &=~ (1<<PB0);
SPCR |= (1<<MSTR); //设主机模式
SPDR = cData;
while(!(SPSR & (1<<SPIF)))//等待传送完毕
;
//PORTB |= (1<<PB4);//传输结束后太高ss
PORTB |= (1<<PB0);
}
/*void delay1s(void)
{
unsigned char i;
for(i=20;i>0;i--)
{
_delay_loop_2(50000);// 50ms
}
}
*/
int main(void)
{
// unsigned char shuma[10] = {0x81,0xf3,0x49,0x61,0x33,0x25,0x05,0xf1,0x01,0x21};
unsigned char shuma[8] = {0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};
spi_init();
unsigned char tmp;
while(1)
{
//for(tmp=0;tmp<10;tmp++)
for(tmp=0;tmp<8;tmp++)
{
spi_mt(shuma[tmp]);
//spi_mt(tmp);
//delay1s();
_delay_ms(1000);
}
}
}
SPI.rar_ATMEGA128 spi_atmega128 spi_atmega128 s_spi atmega128_s
版权申诉
26 浏览量
2022-09-14
15:57:09
上传
评论
收藏 32KB RAR 举报
weixin_42651887
- 粉丝: 75
- 资源: 1万+
最新资源
- 学生成绩管理系统-C++版本
- 吉林大学离散数学2笔记.pdf
- 通道处理过程的模拟通常涉及对通道处理机制的理解与实现.txt
- Flume进阶-自定义拦截器jar包
- Dubins曲线算法讲解和在运动规划中的使用.pdf
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈