查看: 2369|回复: 1

[求助] 【求助】K60的I2C卡在循环里

[复制链接]
  • TA的每日心情
    开心
    2018-8-30 16:02
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    1065

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1851
    最后登录
    2019-11-19
    发表于 2014-12-19 00:48:37 | 显示全部楼层 |阅读模式
    我用的PE10.4.2+MDK环境,K60设的内核频率为120M ,PLL提供,总线频率等都设为最高。
    I2C用的是中断方式,更PE提供的例程没多大差别,代码如下:


    1. main.c中
    2. byte n=0;
    3. Error = AccI2C_SelectSlaveDevice(AccI2CPtr,LDD_I2C_ADDRTYPE_7BITS,0x1c);
    4. if(Error==ERR_OK)
    5. {

    6. AccI2C_MasterSendBlock(AccI2CPtr,AccSendBlock,1U,LDD_I2C_NO_SEND_STOP);
    7.         while(!DataTransmittedFlag){}
    8.         DataTransmittedFlag = FALSE;

    9. AccI2C_MasterReceiveBlock(AccI2CPtr,&n,1U,LDD_I2C_SEND_STOP);
    10.         while(!DataReceivedFlag){}
    11.         DataReceivedFlag = FALSE;


    12. Error = AccI2C_MasterSendBlock(AccI2CPtr,AccSendBlock,2U,LDD_I2C_SEND_STOP);
    13.         while(!DataTransmittedFlag){}
    14.         DataTransmittedFlag = FALSE;

    15. }



    16. event.c中(中断)
    17. void AccI2C_OnMasterBlockSent(LDD_TUserData *UserDataPtr)
    18. {
    19.   /* Write your code here ... */
    20. DataTransmittedFlag = TRUE;
    21. }

    22. void AccI2C_OnMasterBlockReceived(LDD_TUserData *UserDataPtr)
    23. {
    24.   /* Write your code here ... */
    25. DataReceivedFlag = TRUE;
    26. }




    复制代码
    问题:如果直接运行,代码就卡在第三个while循环里,也就是最后一次发送后不进中断。
    但是如果单步运行就不会卡住。
    试过在最后一次发送前重新初始化K60的I2C模块,问题没解决。
    查看最后一次发送函数的返回值Error=0x08,查找ERR说明,提示说Device is busy.
    是时钟太快了吗?这个device指的是K60的I2C模块还是指的是外接的I2C设备?
    如果是外部的I2C设备,都已经接收到数据付给n了,又怎么会busy呢?
    不知道怎么解决,特来求助。


    我知道答案 目前已有1人回答
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-12-22 14:33
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    34

    主题

    512

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1378
    最后登录
    1970-1-1
    发表于 2014-12-20 08:57:26 | 显示全部楼层
    K60的I2C模块
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 13:29 , Processed in 0.086996 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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