大家好!
小弟现在用STM8的定时器的输入捕获功能(采用下降沿有效)来解红外遥控器的码值,遥控器采用NEC协议。引导码是13.5ms脉宽,其他系统码和数据码都是根据“0”、“1”来解码,“0”的脉宽是1.125ms,“1”的脉宽是2.45ms。
小弟目前能够正确收到引导码,但是接下来的系统码和数据码接收发现3个问题,(1)因为根据数据分析,收不到“0”bit,只能有“1”bit
(2)有一些其他脉宽,是协议里面没有的
(3)本来应该受到系统码和数据码一共32bit数据,结果才收到17bit,而且有些根据协议,不能解。
希望大家能够帮忙解答一下。
我把从红外遥控器接收到一个码值的数据贴在下面,如下:
开始接收引导码:
13490--13.49ms//引导码 正确
开始接收系统码16bit和数据码8bit和数据反码8bit
10117--10.117ms//协议中没有这种脉宽,不能解析,错误数据
3375--3.375ms//不能解析,错误数据
2260--2.260ms//正确脉宽,根据协议,表示“1”bit
2239--2.239ms//正确脉宽,根据协议,表示“1”bit
2244--2.244ms//正确脉宽,根据协议,表示“1”bit
2262--2.262ms//正确脉宽,根据协议,表示“1”bit
2238--2.238ms//正确脉宽,根据协议,表示“1”bit
4509--4.509ms//不能解析,错误数据
2239--2.239ms//正确脉宽,根据协议,表示“1”bit
5619--5.619ms//不能解析,错误数据
3372--3.372ms//不能解析,错误数据
4501--4.501ms//不能解析,错误数据
2243--2.243ms//正确脉宽,根据协议,表示“1”bit
2263--2.263ms//正确脉宽,根据协议,表示“1”bit
3371--3.371ms//不能解析,错误数据
41587--41.587ms//不能解析,错误数据
11248--11.248ms//不能解析,错误数据 |