微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > LM71使用读取问题

LM71使用读取问题

时间:10-02 整理:3721RD 点击:

在使用LM71时,我写的驱动测试时发现只能读取到全0或者全1(开始的几次测试读到的都是全0,后来的测试中不知道为什么都读到的是全1),我不是很理解为什么我的代码不能正常运行,难道是我时序问题?

以下是我的部分代码:

u8 LM71_ReadByte()
{
    GPIO_PinModeSet(LM71_Port, LM71_SIO, gpioModeInputPullFilter, 0);
    u8 i = 0;
    u8 tmp = 0;
    u8 SDI;
    for (i = 0; i < 8; ++i) {
        GPIO_PinOutSet(LM71_Port, LM71_SC); //上升沿
        delay(100);
        SDI = (u8)GPIO_PinInGet(LM71_Port, LM71_SIO);
        tmp <<= 1;
        if (SDI) {
            ++tmp;
        }
        GPIO_PinOutClear(LM71_Port, LM71_SC); //下降沿
        delay(100);
    }
    return tmp;
}

读到的全是0或全是1,是不是寄存器就没写成功呢

主机的时序不是先读后写么?

找到原因了,应该是我没有满足转换时间的条件,把转换时延变长就能正常输出了。

原因应该是我没有满足在LM71传输数据之前需要一定的转换时间这个条件,把这个转换时延边长就解决了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top