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

先上电复位传感器,然后读一下这几个固定寄存器。以此来确定通讯时序是否正确!

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;
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);//显示读到的字符串
}
}




feiante 发表于 2015-1-14 15:31:54

你是用模拟的还是硬件IIC?建议可以用逻辑分析仪测试下
页: 1 2 [3] 4 5 6
查看完整版本: I2C温度传感器读不出数据,即使读出也是错误