找回密码
 立即注册
查看: 731|回复: 4

硬件I2C问题,在线等

[复制链接]

1

主题

2

回帖

23

积分

新手上路

积分
23
发表于 2023-11-3 16:22:18 | 显示全部楼层 |阅读模式
void Wait()
{
          unsigned int WaitTime=1000;
       
    while ((!(I2CMSST & 0x40))&(0 != (--WaitTime)));   //MISF of I2CMSST is 1? or waitime=0?

    I2CMSST &= ~0x40;                                  //MISF of I2CMSST reset
}

硬件I2C运行到上面子程序,MISF of I2CMSST没有自动置1,每次都有等到waitime减到0才退出WHILE;
规格书里751页 截图202311031620246220.jpg
芯片用8H1K28;仿真用STC-USB LINK1D
其他的都正常
在线求解决方法




回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-30 10:59:33

25

主题

1154

回帖

2391

积分

超级版主

积分
2391
发表于 2023-11-3 16:50:20 | 显示全部楼层
可以先确定下IIC接线有没有问题?上拉电阻?,还有IO模式?
STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6845

积分

论坛元老

积分
6845
发表于 2023-11-3 16:54:15 | 显示全部楼层
I2CMSST的MISF标志需要执行MSCMD命令后硬件才会自动置1。
所以执行wait函数前需要先执行I2C命令程序。
另外如果是使用仿真验证的话,需要保证使用硬件仿真,软件模拟仿真是收不到硬件标志的。
回复 支持 反对

使用道具 举报 送花

1

主题

2

回帖

23

积分

新手上路

积分
23
发表于 2023-11-3 18:43:28 | 显示全部楼层
接线没有问题啊,I2C负载都是可以传数据的,OLED负载。就是仿真看不到MISF标志变化
有两组I2C,另一组接触摸IC,开始是发现触摸IC I2C通信时MISF标志不变化,回头再看OLED的通信,也是一样,MISF标志不变化,但是OLED通信是正常的
微信图片_20231103184224.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:494
  • 最近打卡:2025-05-02 00:23:56

1

主题

114

回帖

1699

积分

金牌会员

积分
1699
发表于 2023-11-11 11:01:54 | 显示全部楼层
mark一下.
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 23:11 , Processed in 0.129584 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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