在使用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;
}