搜索
bottom↓
回复: 22

求助:KE02的I2C求解(已解决)

[复制链接]

出0入0汤圆

发表于 2014-11-13 09:00:12 | 显示全部楼层 |阅读模式
本帖最后由 ayaqby 于 2014-11-13 10:09 编辑

#define I2C_SLAVE_ADDRESS1          0x50
uint8_t u8I2C_SendBuff[64];
uint8_t u8I2C_ReceiveBuff[64];
int main (void)
{
  
部分代码未显示

        while(1)
        {
        I2C_MasterSendWait(I2C0,I2C_SLAVE_ADDRESS1,&u8I2C_SendBuff[0],64);
        I2C_MasterReadWait(I2C0,I2C_SLAVE_ADDRESS1,&u8I2C_ReceiveBuff[0],64);
        printf("Read data from I2C slave:\n");
        for(i=0;i<8;i++)
        {
            for(j=0;j<8;j++)
            {
                printf("0x%x,", u8I2C_ReceiveBuff[i*8+j]);
            }

            printf("\n");
        }
        u8I2C_SendBuff[0]++;
        for(i=1;i<64;i++)
        {
            u8I2C_SendBuff = i+u8I2C_SendBuff[0];
        }
        for(i=0;i<0xfffff;i++);
        }

}
在读库函数例程的时候#define I2C_SLAVE_ADDRESS1          0x50我理解为从设备地址,请问这个地址是PRDM-KE02Z上面的哪个地址 还是KE02芯片内部的地址呢,求大神帮助,谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出100入101汤圆

发表于 2014-11-13 09:21:40 | 显示全部楼层
“printf("Read data from I2C slave:\n");”,看代码是做主机,可能是演示两个设备的I2C通信的。比如两个FRDM-KE02Z之间通信。

出0入0汤圆

发表于 2014-11-13 09:37:58 | 显示全部楼层
楼主你好!0X50是从机地址。这个地址也是芯片I2C的地址。也就是说,如果你要实现通信,你需要另外一块KE02作为从机实现通信。

出0入0汤圆

发表于 2014-11-13 09:38:16 | 显示全部楼层
同求 不知道这个地址指向哪

出0入0汤圆

发表于 2014-11-13 09:40:14 | 显示全部楼层
fengyunyu 发表于 2014-11-13 09:21
“printf("Read data from I2C slave:\n");”,看代码是做主机,可能是演示两个设备的I2C通信的。比如两个F ...

对的,需要两块的FRDM板子做I2C通信的。
另外板上有个加速度传感器8451,但是它作为从机,地址不是0X50。
所以,需要另外一块KE02做从机使用,代码包里有从机的代码,正好是配置从机地址为0X50的。

出0入0汤圆

 楼主| 发表于 2014-11-13 09:42:09 | 显示全部楼层
fengyunyu 发表于 2014-11-13 09:21
“printf("Read data from I2C slave:\n");”,看代码是做主机,可能是演示两个设备的I2C通信的。比如两个F ...

两个FRDM-KE02Z之间I2C通信,那什么连接啊

出0入0汤圆

发表于 2014-11-13 09:48:08 | 显示全部楼层
ayaqby 发表于 2014-11-13 09:42
两个FRDM-KE02Z之间I2C通信,那什么连接啊

找到板子对应的原理图你就知道了,但是你要把板上有些电阻焊上,或者直接用焊锡短接。


把板上R39,R47短接。
然后再把两块板子的J2的,18,20脚找导线连接就可以了。
你先试试,如果有问题,欢迎继续交流。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-11-13 09:49:53 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-11-13 09:40
对的,需要两块的FRDM板子做I2C通信的。
另外板上有个加速度传感器8451,但是它作为从机,地址不是0X50。
...

I2C_MasterPoll_demo这个例程在一个FRDM板子上运行得到的数据如下
-System Log BEGINS--


Familly ID = 0x0, Sub-family ID = 0x2, Revision ID = 0x0, Pin ID = 0x7
Pin Reset

--System Log ENDS--


Running the I2C_MasterPoll_demo project.
Read data from I2C slave:
0xA1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
Read data from I2C slave:
0xA1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
我的理解是这些数据是从I2C从设备读出来的,请问这个从设备是板子的哪里呢,谢谢

出0入0汤圆

 楼主| 发表于 2014-11-13 09:50:59 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-11-13 09:40
对的,需要两块的FRDM板子做I2C通信的。
另外板上有个加速度传感器8451,但是它作为从机,地址不是0X50。
...

I2C_MasterPoll_demo这个例程在一个FRDM板子上运行得到的数据如下
-System Log BEGINS--


Familly ID = 0x0, Sub-family ID = 0x2, Revision ID = 0x0, Pin ID = 0x7
Pin Reset

--System Log ENDS--


Running the I2C_MasterPoll_demo project.
Read data from I2C slave:
0xA1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
Read data from I2C slave:
0xA1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
我的理解是这些数据是从I2C从设备读出来的,请问这个从设备的地址 是哪里呢,谢谢

出0入0汤圆

 楼主| 发表于 2014-11-13 09:53:37 | 显示全部楼层
网络延时么,回一次贴怎么会出现两个呢

出0入0汤圆

发表于 2014-11-13 09:58:55 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2014-11-13 10:00 编辑
ayaqby 发表于 2014-11-13 09:49
I2C_MasterPoll_demo这个例程在一个FRDM板子上运行得到的数据如下
-System Log BEGINS--


楼主,是另一块板子呢。
其实在KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\src\projects\KE02\I2C_MasterPoll_demo
这个路径下面有个readme.txt.里面讲的很清楚,如何使用。


@par Example description
     ===================
This example provides a template for I2C master with poll mode.
it cycle to transfer a frame data(64 bytes) and show it on terminal.
it also provide a template for how to initialize I2C module.

@par Code configuration
     ===================
Make sure the following macros are defined in ke02_config.h:\n
   USE_FEE and \n
   EXT_CLK_FREQ_KHZ macro is defined to 10000.

@par Directory contents
     ==================
- platforms/ke02_config.h               library and board Configuration file
- projects/ke02/isr.h                   Interrupt handler installation
- projects/ke02/I2C_MasterPoll_demo.c   Main program

@par Hardware environment
     ====================
- Board: freedom FRDM-KE02Z, revA
         - Requirement for demo:
                 1. populate R47,R39 \n
                2. connect two boards with J2 18-18(SDA),20-20(SCL), 14-14(GND)        
       
  
@par How to use it
     =============
In order to make the program work, you must do the following :
- Rebuild all project files and load demo code into the device
- Connect J6 USB port to the computer that will find serial terminal port
- Open the serial terminal
- Configure the serial terminal to protocol: 8-N-1, 115200bps, and flow control: none
- Run the example

出0入0汤圆

发表于 2014-11-13 10:00:28 | 显示全部楼层
ayaqby 发表于 2014-11-13 09:53
网络延时么,回一次贴怎么会出现两个呢

可能发太快了,没关系。

出0入0汤圆

 楼主| 发表于 2014-11-13 10:01:02 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-11-13 09:58
楼主,是另一块板子呢。
其实在KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\src\projects\KE02\I2C_MasterPol ...

没看readme是我的错,只买了一块板子啊

出0入0汤圆

 楼主| 发表于 2014-11-13 10:01:26 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-11-13 09:58
楼主,是另一块板子呢。
其实在KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\src\projects\KE02\I2C_MasterPol ...

谢谢您的解释 ,谢谢  

出0入0汤圆

发表于 2014-11-13 10:03:13 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2014-11-13 10:10 编辑
ayaqby 发表于 2014-11-13 10:01
没看readme是我的错,只买了一块板子啊


那你玩和加速度传感器通信,也是I2C的。
在KE02_SC里面有个LAB_demo工程,里面有和加速度传感器通信的例程。
有问题,欢迎发帖交流。

出0入0汤圆

 楼主| 发表于 2014-11-13 10:08:56 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-11-13 10:03
那你玩和加速度传感器通信,也是SPI的。
在KE02_SC里面有个LAB_demo工程,里面有和加速度传感器通信的例 ...

好的,麻烦你了 ,谢谢  有不懂的再请教,谢谢

出0入0汤圆

发表于 2014-11-13 10:10:51 | 显示全部楼层
ayaqby 发表于 2014-11-13 10:08
好的,麻烦你了 ,谢谢  有不懂的再请教,谢谢

好的,刚在15楼说错了,和加速度是I2C的。
有问题尽快提问啊。

出0入0汤圆

发表于 2014-11-13 14:18:22 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-11-13 09:58
楼主,是另一块板子呢。
其实在KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\src\projects\KE02\I2C_MasterPol ...

Read me 藏得太深了,例程半个月前都快跑完了
到如今才知道还有这么个说明!!!

出0入0汤圆

 楼主| 发表于 2014-11-13 14:31:42 | 显示全部楼层
秦天 发表于 2014-11-13 14:18
Read me 藏得太深了,例程半个月前都快跑完了
到如今才知道还有这么个说明!!! ...

您是怎么跑的,I2C是怎么测试的呢?谢谢

出0入0汤圆

发表于 2014-11-13 22:03:10 | 显示全部楼层
ayaqby 发表于 2014-11-13 14:31
您是怎么跑的,I2C是怎么测试的呢?谢谢

该从机地址啊 我当初也只是简单的跑了下 换成传感器地址0x1D 注意手册上的要求  过几天我还要系统的学习下IIC

出0入0汤圆

 楼主| 发表于 2014-11-14 07:13:22 | 显示全部楼层
秦天 发表于 2014-11-13 22:03
该从机地址啊 我当初也只是简单的跑了下 换成传感器地址0x1D 注意手册上的要求  过几天我还要系统的学习 ...

谢谢  我也试一下  

出0入0汤圆

发表于 2014-11-14 09:10:24 | 显示全部楼层
秦天 发表于 2014-11-13 14:18
Read me 藏得太深了,例程半个月前都快跑完了
到如今才知道还有这么个说明!!! ...

其实和代码包并列的文件夹里也有,是专门的readme文件夹,你可能没注意到:
KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\refman\ke02

出0入0汤圆

发表于 2014-11-14 17:58:52 | 显示全部楼层
谢谢分享,资料先收藏了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 21:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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