如何配置硬件IIC

如何配置硬件iic 
   iic英文全称:inter integrated circuit,集成电路总线,是飞利浦公司在八十年代开发的一种串行、同步、半双工总线。
iic总线协议无非就是几样东西:起始信号、停止信号、应答信号、以及数据有效性。大家学习了正点原子的iic实验,应该很了解iic时序。正点原子使用的是软件模拟iic,也就是用io口模拟出iic时序去通信。使用硬件iic,就可以不用管时序信号,配置好之后就可以产生时序。虽说st的硬件iic很鸡肋,但是某些方面还是比软件模拟iic稍微强一点。
下面列出一个硬件iic和软件iic的对比表
软件iic整个流程很清晰,假如出了bug,你能很快找到问题,硬件iic就需要动用ds100示波器去看波形,波形的查看教程可以参考以下推文
《嵌入式工程师必备技能—如何使用示波器查看iic波形》
https://mp.weixin.qq.com/s/lnsorsbxenje-qvww0evbg
其实很多时候是在管脚上考量使用软件iic。硬件iic虽然被听说吐槽过千百遍,但是有些人还是有兴趣想使用stm32的iic外设的,那么本文就教一下大家使用硬件iic,侧重于使用(这里使用的是f1 hal库)。
首先,先看hal库给iic定义好的结构体,这里主要讲解iic初始化结构体
  clockspeed:iic的传输速率,主要看从机,从机at24c02是最大为400khz,低于400khz即可。
dutycycle:scl线时钟占空比,就是低电平与高电平的比值,没有严格限制,选择2:1或者16:9即可。
  ownaddress1:stm32的iic设备的自身地址,挂载在iic总线上的器件每一个都有自己唯一地址,作为主机也不例外。特别注意:这里地址的设置不要跟从机一样即可。
addressingmode:地址的位数是使用7位还是10位,这要看从机了。对于at24c02来说,直接使用7位。
  dualaddressmode:用来配置是否支持双设备地址,没有用到可以不配置。
  ownaddress2:stm32的iic设备的自身地址,是否有效取决于dualaddressmode成员的设置。
  generalcallmode:广播呼叫模式,作为从机时使用,通常用不上。
  nostrethmode:时钟线延长,也是作为从机时使用的,通常用不上。
在iic实验例程中,编写hwiic_init如下:
这里是调用hal_i2c_init函数对iic进行初始化,在iic的初始化回调函数中就要使能i2c1时钟以及对相关引脚进行初始化,特别注意gpio口的模式(复用开漏输出),这部分代码比较简单就不列出来了。
初始化完成后,使用hal库提供的iic发送和接收函数,函数如下:
        hi2c:iic的句柄结构体地址。
        devaddress:从机的设备地址,这里并不是通讯地址。
        memaddress:要写入的地址。
        memaddsize:地址的长度。
        pdata:要写入的数据的地址。
        size:写入数据的个数
        timeout:函数执行的超时时间。
以往的at24c02的写操作函数和读操作函数,函数体内一堆代码,现在只是几行代码。
at24c02写一字节函数代码如下:
at24c02读一字节函数代码如下:
  假如说直接用hal_i2c_mem_write来编写连续写函数,就有页写限制,也就是最多8字节,当你写入的数据大于8字节时,就会出现错误了。
所以编写at24c02的连续写函数最好就是调用at24c02_write_one_byte这个函数接口。
最终可以比对一下相同数据量的传输下,软件模拟iic和硬件iic的速度对比。
硬件iic的配置使用还是挺简单的,速度上面还是比模拟iic快,假如说是驱动oled屏幕的话,可以试用一下硬件iic提高一下刷新率,得到更好的显示效果。
end

小米上架 Type-C 充电器快充版 20W,适配苹果手机
北汽瑞丽汽车项目中电力监控系统的应用分析
雷军两个“1000”小目标 哪个更靠谱?
红外线测温仪的工作原理
影响仪器仪表差热分析关键因素及选择
如何配置硬件IIC
如何用运放实现加减法运算
STM32单片机的断言机制函数assert_param解析
乐山的智慧城市试点情况怎样
WIFI6无线网卡驱动编译流程
谁能拒绝一个内置AI绘画的思维导图软件?
晶台半导体显示项目签约落户平湖 预计年产值108亿元
TI推出新型40-A SWIFTTM DC/DC降压转换器,可在高开关频率下提高效率
再度实现业绩高速增长!利尔达受邀出席ST代理商大会并荣膺多项重量级大奖
简要分析CPCI工控机与传统工控机的区别
5G切片应运而生 网络切片的概述及分类解析
关于价位3千元左右的超高性价比电脑
「生成式」人工智能是未来的发展方向吗?专家解释新范式,需要人类参与
高通全球手机芯片市占率31% 连续五年第一
电烙铁的使用注意事项