既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
SPI优点:支持全双工操作;操作简单;数据传输速率较高。SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps。
SPI缺点:需要占用主机较多的口线(每个从机都需要一根片选线);只支持单个主机;没有指定的流控制,没有应答机制确认是否接收到数据。
I2C优点:只使用两根电线,支持多个主服务器和多个从服务器,ACK / NACK位确认每个帧都已成功传输,硬件没有UART那么复杂。
I2C缺点:数据传输速率比SPI慢(IIC 最高的速度也就快速+模式(1 Mbps)和高速模式(3.4 Mbps)),数据帧的大小限制为8位,实现比SPI更复杂的硬件。
UART优点:只使用两根电线,不需要时钟信号,有一个奇偶校验位,只要双方设置后,就可以改变数据包的结构。
UART缺点:数据帧的大小限制为最多9位,不支持多个从属或多个主系统,速度最慢。
IIC八种状态和对应代码
其实IIC的通信就是通过两根线的八种状态完成的。**两根线怎么会有八种状态?**其实一根线有高电平、低电平、上升沿、下降沿四种状态。
数据线和时钟线组成的8种状态。
下面的代码就是用IO口去模拟IIC。实验是在STM32F103芯片做的,是能够跑通的。
//产生IIC起始信号
void IIC\_Start(void)
{
SDA\_OUT(); //sda输出
IIC_SDA=1;
IIC_SCL=1;
delay\_us(4);
IIC_SDA=0;//START:when CLK is high,DATA change form high to low
delay\_us(4);
IIC_SCL=0;//铅住I2C总线,准备发送或接收数据
}
//IIC发送一个字节
//返回从机有无应答
//1,有应答
//0,无应答
void IIC\_Send\_Byte(u8 txd)
{
u8 t;
SDA\_OUT();
IIC_SCL=0;//拉低时钟开始数据传输
for(t=0;t<8;t++)
{
IIC_SDA=(txd&0x80)>>7; //往SDA上放数据,放txd最高位
txd<<=1;
delay\_us(2); //对TEA5767这三个延时都是必须的
IIC_SCL=1;
delay\_us(2);
IIC_SCL=0;
delay\_us(2);
}
}
//等待应答信号到来
//返回值:1,接收应答失败
// 0,接收应答成功
u8 IIC\_Wait\_Ack(void)
{
u8 ucErrTime=0;
SDA\_IN(); //SDA设置为输入
IIC_SDA=1;delay\_us(1); //SDA设置为1,释放SDA总线
IIC_SCL=1;delay\_us(1);
while(READ_SDA) //读SDA,如果SDA一直为1,则无应答;如果SDA为0,则应答成功
{
ucErrTime++;
if(ucErrTime>250)
{
IIC\_Stop();
return 1;
}
}
IIC_SCL=0;//时钟输出0
return 0;
}
//产生ACK应答
void IIC\_Ack(void)
{
IIC_SCL=0;
SDA\_OUT();
IIC_SDA=0;
delay\_us(2);
IIC_SCL=1;
delay\_us(2);
IIC_SCL=0;
}
//读数据
//返回值就是接收到的一个字节
u8 IIC\_Read\_Byte(unsigned char ack)
{
unsigned char i,receive=0;
SDA\_IN();//SDA设置为输入
for(i=0;i<8;i++ )
{
IIC_SCL=0;
delay\_us(2);
IIC_SCL=1; //SCL为高的时候读取数据
receive<<=1; //每读一次,receive左移一位
if(READ_SDA)receive++; //读取SDA放在receive最低位
delay\_us(1);
}
if (!ack)
IIC\_NAck();//发送nACK
else
IIC\_Ack(); //发送ACK
return receive;
}
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)