关于STM32模拟IIC的理解

本文介绍了STM32如何模拟IIC通信,包括启动和停止信号的生成、应答信号的处理以及数据的发送和接收。通过详细解析关键函数,展示了模拟IIC总线通信的步骤,同时讨论了IIC器件地址的确定规则。
摘要由CSDN通过智能技术生成

从书上看到STM32的硬件IIC远没有硬件SPI好用,书上给的例子也是模拟IIC的,因为之前只用过51的准双向口控制过简单的IIC器件,所以好好看了下。

IIC总线是由数据线SDA和时钟线SCL两条线构成的通信线路,既可以发送数据,也可以接收数据。在MCU和被控IC之间,IC和IC之间都可以进行双向传输。


这是一个IIC总线系统硬件结构图,SCL和SDA均需接上拉电阻。

在模拟IIC总线通信时,需写出几个关键部分的函数。


#define IIC_SCL    PCout(12) //SCL
#define IIC_SDA    PCout(11) //SDA  
#define READ_SDA   PCin(11) 


(1):总线初始化

void IIC_Init(void)
{     
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );   
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;            //将PC12和PC11设置为通用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
 
IIC_SCL=1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值