你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

I2C温度传感器读不出数据,即使读出也是错误  

[复制链接]
wamcncn 提问时间:2015-1-14 12:11 /
阅读主题, 点击返回1楼
收藏 评论56 发布时间:2015-1-14 12:11
56个回答
wamcncn 回答时间:2015-1-14 13:30:32
奔跑小蜗牛 发表于 2015-1-14 13:27
读出的错数据大约是什么样子?全ff?全00??

不修改 0.000,修改后125.875
反正读出的数据不变化
zhous 回答时间:2015-1-14 13:32:21
wambob 发表于 2015-1-14 13:30
不修改 0.000,修改后125.875
反正读出的数据不变化

不修改 0.000,修改后125.875???什么意思?修改了什么
wamcncn 回答时间:2015-1-14 13:33:39
QianFan 发表于 2015-1-14 12:19
还是自己使用软件模拟吧

就是使用论坛元老的模拟I2C啊,只是添加了LM75A.c驱动
wamcncn 回答时间:2015-1-14 13:34:50
zhous 发表于 2015-1-14 13:32
不修改 0.000,修改后125.875???什么意思?修改了什么

当然是修改LM75读函数了
wamcncn 回答时间:2015-1-14 13:45:47
Dylan疾风闪电 发表于 2015-1-14 12:23
1.外围电路是否正确?
I2C总线上拉电阻是否恰当。
2.I2C传感器的地址与软件设置是否一致?

外围就2个上拉电阻
和24C02差不多,外接上拉电阻,数据手册上的是10K,我用的4.7K,有影响吗
I2C器件地址 1001A1A2A3    读是1,写是0
IO的模拟程序,论坛上的,摩尔吧的教程
I2C器件正常,因为用 51单片机可以读出正常读数
zhous 回答时间:2015-1-14 13:46:28
wambob 发表于 2015-1-14 13:34
当然是修改LM75读函数了

那具体修改了什么咯,不要这么笼统,不然别人怎么帮你解决
石头-395391 回答时间:2015-1-14 13:57:04
帮忙顶下~
Dylan疾风闪电 回答时间:2015-1-14 14:30:08
先上电复位传感器,然后读一下这几个固定寄存器。以此来确定通讯时序是否正确!
无标题.jpg
chendiand 回答时间:2015-1-14 14:30:58
看见50金币就进来啦
Dylan疾风闪电 回答时间:2015-1-14 14:35:15
以前做的模拟I2C的资料在文件堆里找了半天也没找到,只有用I2C外设的。STM32F100x的版本。
晓枫VS枯叶 回答时间:2015-1-14 14:46:52
F0的我用了HAL库调通了I2C,你这标准库还没研究!
Dylan疾风闪电 回答时间:2015-1-14 14:58:56
当时F1系列的标准库搞了1个月,总算才把硬件错误的busy问题绕过去了。后来用了F0系列,哈哈,终于再也不用纠结I2C了。新版的I2C果然好用。
那段日子血泪史啊。
Dylan疾风闪电 回答时间:2015-1-14 15:14:14
终于找到了,模拟i2c的程序。我先回顾下,再看你的程序。
Dylan疾风闪电 回答时间:2015-1-14 15:25:02
使用很方便的,关于读取EEP的一段程序。
/*******************************************************************************
* Function Name  : main.
* Description    : Main routine.
*******************************************************************************/
int main(void)
{
  //初始化外设
  RCC_Config(9);//HSE_72MHz

  LED_Config();//LD4567

  LCD_Init();

  myIIC_Init(); //IIC初始化

  //LCD_Clear();

  /* --以下为调试内容-------------------------------------------------------- */

  LCD_DrawString(0, 0, "STM32F10E LK");
  LCD_DrawString(2, 0, "TEST BOARD");
  LCD_DrawString(4, 0, "ATOM@ALIENTEK");
  LCD_DrawString(6, 0, "2011/2/24");


  u8 datatemp[SIZE];
  while(1)
  {
    AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE);
    AT24CXX_Read(0,datatemp,SIZE);
    LCD_DrawString(2,0,"The Data Readed Is: ");//提示传送完成
    LCD_DrawString(4,0,datatemp);//显示读到的字符串
  }
}
模拟I2C.rar (3.82 KB, 下载次数: 5)
feiante 回答时间:2015-1-14 15:31:54
你是用模拟的还是硬件IIC?建议可以用逻辑分析仪测试下

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版