[Kinetis] I2C1

[复制链接]
 楼主| freescaleFans 发表于 2015-4-1 16:50 | 显示全部楼层 |阅读模式
用IAR仿真调试K22FX51212单片机的I2C1模块。发现程序死在了i2c_wait();这个函数。监控I2C1的寄存器,发现当i2c_start();后。I2C1_S寄存器中的ARBL位被置1了!好的时候监控其是不被置1的?这应该怎么解决呢?
备注:i2c_wait();和i2c_start();等函数是按照官方例程二十四I2C模块编写的。
FSL_TICS_ZJJ 发表于 2015-4-1 16:54 | 显示全部楼层
把你I2C代码贴出来,或者代码上次,有空帮你看看。
FSL_TICS_ZJJ 发表于 2015-4-2 10:14 | 显示全部楼层
另外,楼主可以直接参考K22的KSDK I2C代码,
安装下KSDK1.1.0, 代码路径:
C:\Freescale\KSDK_1.1.0\demos\i2c_comm
 楼主| freescaleFans 发表于 2015-4-2 10:27 | 显示全部楼层
k22这个I2C模块是7位或10位的,我要与24CL16EEPROM通信。可是它是11位的地址啊?怎么处理?
 楼主| freescaleFans 发表于 2015-4-2 10:45 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-2 10:14
另外,楼主可以直接参考K22的KSDK I2C代码,
安装下KSDK1.1.0, 代码路径:
C:\Freescale\KSDK_1.1.0\demos ...

这个例程中有一些osa——的函数,是干什么的?操作系统吗?一定要加上嘛?
FSL_TICS_ZJJ 发表于 2015-4-7 13:30 | 显示全部楼层
freescaleFans 发表于 2015-4-2 10:45
这个例程中有一些osa——的函数,是干什么的?操作系统吗?一定要加上嘛? ...

如果使用SDK,则是需要添加OSA的。
关于OSA在SDK中的具体功能,建议你查看KSDK根目录下的文档:Kinetis SDK v.1.1 API Reference Manual.Pdf
路径: C:\Freescale\KSDK_1.1.0\doc
Chapter 48 OS Abstraction Layer (OSA)

FSL_TICS_ZJJ 发表于 2015-4-7 13:32 | 显示全部楼层
freescaleFans 发表于 2015-4-2 10:27
k22这个I2C模块是7位或10位的,我要与24CL16EEPROM通信。可是它是11位的地址啊?怎么处理?
...

K22的I2C模块最长就是11位地址,如果你的从机很特殊,11位地址的话,那么你可以使用IO去模拟I2C,从而实现你特定的时序。

评分

参与人数 1威望 +2 收起 理由
freescaleFans + 2

查看全部评分

 楼主| freescaleFans 发表于 2015-4-15 09:54 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-7 13:32
K22的I2C模块最长就是11位地址,如果你的从机很特殊,11位地址的话,那么你可以使用IO去模拟I2C,从而实 ...

结贴给分怎么操作的?
FSL_TICS_ZJJ 发表于 2015-4-15 10:52 | 显示全部楼层
freescaleFans 发表于 2015-4-15 09:54
结贴给分怎么操作的?

结贴可以参考这个帖子

https://bbs.21ic.com/icview-692566-1-1.html
FSL_TICS_ZJJ 发表于 2015-4-15 10:52 | 显示全部楼层
非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
后会无期1 发表于 2015-4-15 20:41 来自手机 | 显示全部楼层
学习下K22FX51212单片机的I2C1模块
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

94

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部