求助:KE02的I2C求解(已解决)
本帖最后由 ayaqby 于 2014-11-13 10:09 编辑#define I2C_SLAVE_ADDRESS1 0x50
uint8_t u8I2C_SendBuff;
uint8_t u8I2C_ReceiveBuff;
int main (void)
{
部分代码未显示
while(1)
{
I2C_MasterSendWait(I2C0,I2C_SLAVE_ADDRESS1,&u8I2C_SendBuff,64);
I2C_MasterReadWait(I2C0,I2C_SLAVE_ADDRESS1,&u8I2C_ReceiveBuff,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);
}
printf("\n");
}
u8I2C_SendBuff++;
for(i=1;i<64;i++)
{
u8I2C_SendBuff = i+u8I2C_SendBuff;
}
for(i=0;i<0xfffff;i++);
}
}
在读库函数例程的时候#define I2C_SLAVE_ADDRESS1 0x50我理解为从设备地址,请问这个地址是PRDM-KE02Z上面的哪个地址 还是KE02芯片内部的地址呢,求大神帮助,谢谢 “printf("Read data from I2C slave:\n");”,看代码是做主机,可能是演示两个设备的I2C通信的。比如两个FRDM-KE02Z之间通信。 楼主你好!0X50是从机地址。这个地址也是芯片I2C的地址。也就是说,如果你要实现通信,你需要另外一块KE02作为从机实现通信。 同求 不知道这个地址指向哪 fengyunyu 发表于 2014-11-13 09:21
“printf("Read data from I2C slave:\n");”,看代码是做主机,可能是演示两个设备的I2C通信的。比如两个F ...
对的,需要两块的FRDM板子做I2C通信的。
另外板上有个加速度传感器8451,但是它作为从机,地址不是0X50。
所以,需要另外一块KE02做从机使用,代码包里有从机的代码,正好是配置从机地址为0X50的。 fengyunyu 发表于 2014-11-13 09:21
“printf("Read data from I2C slave:\n");”,看代码是做主机,可能是演示两个设备的I2C通信的。比如两个F ...
两个FRDM-KE02Z之间I2C通信,那什么连接啊 ayaqby 发表于 2014-11-13 09:42
两个FRDM-KE02Z之间I2C通信,那什么连接啊
找到板子对应的原理图你就知道了,但是你要把板上有些电阻焊上,或者直接用焊锡短接。
把板上R39,R47短接。
然后再把两块板子的J2的,18,20脚找导线连接就可以了。
你先试试,如果有问题,欢迎继续交流。 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从设备读出来的,请问这个从设备是板子的哪里呢,谢谢 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从设备读出来的,请问这个从设备的地址 是哪里呢,谢谢 网络延时么,回一次贴怎么会出现两个呢 本帖最后由 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 ayaqby 发表于 2014-11-13 09:53
网络延时么,回一次贴怎么会出现两个呢
可能发太快了,没关系。 FSL_TICS_ZJJ 发表于 2014-11-13 09:58
楼主,是另一块板子呢。
其实在KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\src\projects\KE02\I2C_MasterPol ...
没看readme是我的错,只买了一块板子啊 {:cry:} FSL_TICS_ZJJ 发表于 2014-11-13 09:58
楼主,是另一块板子呢。
其实在KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\src\projects\KE02\I2C_MasterPol ...
谢谢您的解释 ,谢谢 本帖最后由 FSL_TICS_ZJJ 于 2014-11-13 10:10 编辑
ayaqby 发表于 2014-11-13 10:01
没看readme是我的错,只买了一块板子啊
那你玩和加速度传感器通信,也是I2C的。
在KE02_SC里面有个LAB_demo工程,里面有和加速度传感器通信的例程。
有问题,欢迎发帖交流。 FSL_TICS_ZJJ 发表于 2014-11-13 10:03
那你玩和加速度传感器通信,也是SPI的。
在KE02_SC里面有个LAB_demo工程,里面有和加速度传感器通信的例 ...
好的,麻烦你了 ,谢谢有不懂的再请教,谢谢 ayaqby 发表于 2014-11-13 10:08
好的,麻烦你了 ,谢谢有不懂的再请教,谢谢
好的,刚在15楼说错了,和加速度是I2C的。
有问题尽快提问啊。 FSL_TICS_ZJJ 发表于 2014-11-13 09:58
楼主,是另一块板子呢。
其实在KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\src\projects\KE02\I2C_MasterPol ...
Read me 藏得太深了,例程半个月前都快跑完了
到如今才知道还有这么个说明!!! 秦天 发表于 2014-11-13 14:18
Read me 藏得太深了,例程半个月前都快跑完了
到如今才知道还有这么个说明!!! ...
您是怎么跑的,I2C是怎么测试的呢?谢谢 ayaqby 发表于 2014-11-13 14:31
您是怎么跑的,I2C是怎么测试的呢?谢谢
该从机地址啊 我当初也只是简单的跑了下 换成传感器地址0x1D 注意手册上的要求过几天我还要系统的学习下IIC 秦天 发表于 2014-11-13 22:03
该从机地址啊 我当初也只是简单的跑了下 换成传感器地址0x1D 注意手册上的要求过几天我还要系统的学习 ...
谢谢我也试一下 秦天 发表于 2014-11-13 14:18
Read me 藏得太深了,例程半个月前都快跑完了
到如今才知道还有这么个说明!!! ...
其实和代码包并列的文件夹里也有,是专门的readme文件夹,你可能没注意到:
KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\refman\ke02 谢谢分享,资料先收藏了。
页:
[1]