找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2633|回复: 0
打印 上一主题 下一主题
收起左侧

IIC协议及STM32中IIC初始化结构体

[复制链接]
跳转到指定楼层
楼主
ID:327671 发表于 2019-11-24 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IIC协议
分为   物理层(硬件)和协议层(软件)   同步串行通讯方式
物理层(硬件):两根总线 SDA(数据线)   SCL(时钟线)
               每一个连接到总线的设备都有一个独立的地址(7——10位),主机利用这个地址进行不同设备之间的通讯。
               上拉电阻一般接4.7K   实现高阻态  线与
               当设备空闲时,输出高阻态。   高阻态表示逻辑1  地表示逻辑0
               电压为:2-15v
               STM32使用时引脚配置为开漏输出模式
               三种传输模式:标准模式  传输速率100kbps
                            快速模式  传输速率400kbps
                            高速模式  传输速率3.4mbps  但目前大多IIC设备不支持
                            只要满足设备传输要求  可根据具体情况设置传输速率
                连接到总线的电容不能超过400pf限制。
协议层(软件):起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播的等
               主机写从机读信号传输过程:
                   起始信号  从机地址  读写方向R/nW(主机1读0写) 从机产生应答信号给主机   数据传输   从机产生应答信号  数据传输  判断是否应答(应答则继续传输数据非应答则停止传输) 主机发出停止信号
               主机读从机写信号传输过程:
                   起始信号  从机地址  读写方向R/nW(主机1读0写) 从机产生应答信号给主机   数据传输   主机产生应答信号  数据传输  判断是否应答(应答则继续传输数据非应答则停止传输) 主机发出停止信号
               复用信号传输数据,两个起始信号,第一个发送要读写寄存器的地址,第二个发送要读写的数据
               当SCL为高电平时SDA线从高电平向低电平切换表示通讯起始
               当SCL为高电平时SDA线从低电平向高电平切换表示通讯结束
               SCL的每个时钟周期传输一位数据,SCL高电平SDA数据有效,SCL低电平数据无效,此时SDA数据交换。
软件模拟协议    硬件实现协议
1、初始化IIC相关的GPIO
2、配置IIC外设的工作模式
3、编写IIC写入EEPROM的BYTE write函数
4、编写IIC读取EEPROM的RANDOM read函数
5、使用page write 及set read函数并校验
//IIC初始化结构体
typedef struct
{
  uint32_t I2C_ClockSpeed;          /*设置SCL时钟频率,此值要低于400000*/

  uint16_t I2C_Mode;                /*指定工作模式,可选IIC和SMBUS模式 */

  uint16_t I2C_DutyCycle;           /*指定时钟占空比,可选low/hign = 2:1及16:9模式*/

  uint16_t I2C_OwnAddress1;         /*指定IIC设备地址*/

  uint16_t I2C_Ack;                 /*使能或关闭响应(一般都要使能)*/

  uint16_t I2C_AcknowledgedAddress; /*指定地址长度,可为7为及10为 */
}I2C_InitTypeDef;


//IO口作为输出方式时,IO口的IDR寄存器有数据

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表