打印
[Kinetis]

测试PE的IIC组件的问题

[复制链接]
1228|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

粉丝