jicheng0622

【原创】FRDM-K22F基于Kinetis SDK1.1的I2C通信HAL层例程

0
阅读(5611)

    羊年伊始,假期结束,重新回到了工作岗位。回味过去的一整年,成长不少,收获良多,感恩身边的人。展望新的一年征程,充满未知和挑战,收拾心情,整装待发,奋斗ing…

    闲话不多说了,直接说正事吧。飞思卡尔去年终于推出了好多人都翘首以盼的底层驱动库Kinetis SDK,看名字就知道了,这个驱动库主要是针对飞思卡尔ARM家族Kinetis系列的了,目前已经更新到v1.1版本了。针对该驱动库的具体介绍在这篇文章里我就不赘述了,建议大家直接到飞思卡尔的官网去仔细查阅和下载,其官方链接为http://www.freescale.com/zh-Hans/webapp/sps/site/prod_summary.jsp?code=KINETIS_SDK&fsrch=1&sr=3&pageNum=1&uc=true&lang_cd=zh-Hans,当然,刚开始支持的芯片系列有限,不过随着版本的不多更新,会有越来越多的芯片被添加进来。

    本篇文章的主要目的是给出一个基于SDK HAL层的I2C通信例程供参考移植,毕竟用到I2C的地方还是比较多的,像外扩EEPROM,电源管理芯片等都需要与主MCU进行I2C通信。所以那怎样基于SDK编写HAL层的I2C驱动代码呢,虽然SDK里面自带Demo例程里已经有I2C的Driver层驱动了,但是Drvier层有其自身局限性(实现的形式和功能比较固定,一般作为演示用例还好),而HAL层则灵活的多(HAL层实际上就是对底层寄存器进行了封装,屏蔽了硬件的兼容问题),使用HAL层可以最大程