查看: 1895|回复: 1

[求助] 【转】FRDM-K22F基于Kinetis SDK1.1的I2C通信HAL层例程

[复制链接]

该用户从未签到

14

主题

113

帖子

0

中级会员

Rank: 3Rank: 3

积分
259
最后登录
1970-1-1
发表于 2015-3-5 16:33:47 | 显示全部楼层 |阅读模式
原作者是jicheng0622,电子技术应用网看到的,感觉挺有用的,转来分享给大家。

本篇文章的主要目的是给出一个基于SDK HAL层的I2C通信例程供参考移植,毕竟用到I2C的地方还是比较多的,像外扩EEPROM,电源管理芯片等都需要与主MCU进行I2C通信。所以那怎样基于SDK编写HAL层的I2C驱动代码呢,虽然SDK里面自带Demo例程里已经有I2C的Driver层驱动了,但是Drvier层有其自身局限性(实现的形式和功能比较固定,一般作为演示用例还好),而HAL层则灵活的多(HAL层实际上就是对底层寄存器进行了封装,屏蔽了硬件的兼容问题),使用HAL层可以最大程度的利用外设模块。FRDM-K22板子上自带了一个飞思卡尔自家的6轴传感器E-Compass(3轴加速度+3轴地磁),通信接口为I2C和SPI接口可选,既然以I2C为例介绍,所以就选择I2C接口,板子上已经将该传感器与MCU连好了,并且加了上拉电阻,所以硬件工作无需额外了,只需要在软件上下功夫就可以了,下面我简单介绍下开发平台和开发环境:

开发平台:FRDM-K22F,板载传感器的从机地址为0x1C,通信波特率为90kbps

开发环境:IAR 7.3

例程模板:KSDK_1.1.0\demos\hello_world\iar\frdmk22f

代码是在SDK1.1中的Hello world例程的基础上修改的,修改后的代码我已上传到博客最后的附件中,将附件中.c文件的所有内容覆盖原来的在SDK1.1安装目录下hello_world例程的hello_world.c文件中的所有内容即可,然后编译并下载到板子上,运行PC端的串口调试助手或者超级终端(串口波特率为115200),复位MCU,此时会打印出"Hello World!”,然后向板子发送任意一个字符即可输出板载传感器6个轴向的数据,如下图:
FRDM-K22F基于Kinetis SDK1.1的I2C通信HAL层例程.png

源代码: i2c_test.zip (2.15 KB, 下载次数: 26)
回复

使用道具 举报

该用户从未签到

9

主题

80

帖子

0

注册会员

Rank: 2

积分
179
最后登录
2018-5-9
发表于 2015-3-6 16:57:23 | 显示全部楼层
下下来试一下
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 16:24 , Processed in 0.091872 second(s), 25 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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