写了一个关于红外Pyd1798的测试程序,由于原来是基于stm8L的方案,为了节约时间就没有换方案,经过几天的了解才知道stm8原来也是有库的,与stm32有异曲同工之妙。
根据Pyd1798的手册,开始写时序函数,刚开始是按Datasheet老版本的写,出来的波形还行,但一直就是打印不正确。由于还不知道写的时序对不对,所以在网上查资料,又下了一版较新的Pyd1798根据那个时序又写读函数,结果根本没有得到数据手册标的时序波形。现在才发现原来,自己用的这个Pyd1798是个老版本的。
确定不是时序问题后,就开始找原因。先看直接输出行不行?printf("%d\n",100);
结果还是输出原来的值。可见是printf的问题。其实IAR一直是提示有Wanning printf 是单独声明
原来,在头文件声明时,没有加 #include<stdio.h>的函数。
加上后,打印一个无符号16位的数,正常,不是所谓的16位要拆开来打印。
这些弯路其实都是可以避免的,但也未尝不是件好事,通过找问题,扩展了很多的心里不知道怎么弄的东西。