本帖最后由 有风 于 2009-10-13 17:26 编辑
延时我也用过,就是没有正确解码,我才改用定时的!!!
现在的关键是我不知道这程序为什么没有返回值????串口调试助手上没有数据呀!!!!
改为uSendData = 0x01或其它,并屏蔽SendFlag ==1,再看串口调试助 ...
贺信 发表于 2009-10-13 17:13
if(T0Count > 2) //根据波形长度判定码值为0或1
uTemp = 1;
else
uTemp = 0;
T0Count > 2 相当于T0Count >=3, 就是说高电平时间要>=500*3=1500us,
不正确的,1的高电平时间是1680us,如果信号有一点偏移,变成1480us,
加上你那500us的延时很有水分,就检测不到1了.
搞个100us的延时函数,以11为分界点,这样子精确一点的. |