【正点原子阿波罗STM32F429IGT开发板试用体验】+硬件IIC读写....

  • nealson
  • LV5工程师
  • |      2018-07-04 16:15:56
  • 浏览量 1214
  • 回复:0
本帖最后由 nealson 于 2018-7-4 16:31 编辑 硬件IIC读写测试利用的是板载AT24C02和PCF8574芯片,为什么用这两个呢?因为前者是双地址读写,后者是单地址读写,需要调用的函数不一样,当然可以一样,但是会有问题。 1.首先看一下数据手册,了解两个芯片的读写时序 先看下AT24C02的读写时序 可以看到读写时序是先传输设备地址,在传输数据地址,在传输数据(读写的区别在于设备地址的最低位,高为读,低为写) 再看下PCF8574T的读写时序 可以看到时序是先传输设备地址,然后直接传输数据(读写的区别在于设备地址的最低位,高为读,低为写) 2.初始化IIC设备,这里设置I2C的速度是标准的100000,没有使用快速的400K,可以兼容更多的设备。 HAL库关于IIC读写的几个函数 AT24C02调用的函数,这里要强调一点,AT24C02是分页写入的,每页8个字节,原子哥例程写入数据串是一个一个写入,如果需要连续写入数据可以一个一个写,连续写的时候注意页地址区分,否则会造成读写异常。这里我做了分页处理,可以参考下。 PCF8574T调用的函数 3.实现代码,如图是AT24C02的代码,屏蔽的是PCF8574的代码 4.运行AT24C02代码的结果 以下是需要写入的数据 初始化之后先读一包数据,看到和写入数据不一样,确保不作假 短暂延时之后写入数据,然后重新读,看到结果和写入的数据一致,测试成功 4.运行PCF8574代码可以听到蜂鸣器的间断尖叫,证明读写成功 将PCF8574调用的IIC函数替换成AT24C02使用的函数,然后更换输出PIN,你会发现,每次读写设备的时候蜂鸣器都会短鸣一下,很烦人,所以对于这种单地址读写的设备建议使用以上函数读写。 5.总体来说F4的硬件IIC还是比较方便设置和使用的,稳定性的话我跑了几个小时没发现异常的情况。 工程文件比较大,这里我只上传了驱动文件,仅供参考。 6.以上
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子