[Kinetis] 测试PE的IIC组件的问题

[复制链接]
1500|1
 楼主| forthlab 发表于 2016-6-29 16:08 | 显示全部楼层 |阅读模式
本帖最后由 forthlab 于 2016-6-29 16:12 编辑

要测试IIC的代码,
环境:
ke06z128的freedom测试板,
测试MMA8451倾角传感器,是IIC接口
启动processor expert,添加IIC组件,主要设置:
禁止中断,SCL4.688K
设置中发现有个小三角警告:polling trials:32000;修改其他值器没法消除警告,但曾经代码可以执行



主要代码如下:

  for(;;){
          n = MMA8451_SelectSlave(0x1d);        //IIC地址
          n = MMA8451_SendBlock("\x0d\x1d", 2, &i);  //0xd 是ID寄存器的地址 ,在这一步跳到event。c


          n = MMA8451_RecvChar(&c);                //取ID,应该是0x1a
          n = MMA8451_SendStop();
  }


单步执行后,跳到event.c
/*
** ===================================================================
**     Method      :  UnhandledInterrupt (component MKE06Z128LK4)
**
**     Description :
**         This ISR services the unhandled common interrupt.
**         This method is internal. It is used by Processor Expert only.
** ===================================================================
*/
PE_ISR(UnhandledInterrupt);
PE_ISR(UnhandledInterrupt)
{
  PE_DEBUGHALT();
}


补充说明一下:
1. 这个程序我一开始运行,是可以运行的,也能取到MMA8451的ID,偶尔会出问题,包括用中断的模式也是可以的;但运行不稳定,于是我重新建项目;只保留主要代码;
2. IIC我实际用肯定是要用中断的,现在先测试不用中断的模式;问题一个一个解决;

请教一下,我的PE组件的IIC代码问题在哪里?

 楼主| forthlab 发表于 2016-7-1 09:08 | 显示全部楼层
freescale的工程师能给我解决一下吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

87

主题

749

帖子

5

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