台湾燃太TN905模块是我使用的第三家公司做的红外测温产品,前两款是TI的TMP006和Melexis的MLX90614,TN905模块吸人的地方是它已经高度集成了各个模块,拿过来几乎就可以直接使用了,测量距离比较长,探头前面已经设计好了菲涅尔透镜,探头引脚出来也多了一些用于数据处理的电路,当然价格也相对比较昂贵。
TN905的测量物距比为5:1,TN901位1:1,一张图来解释什么是物距比(测量热源距离探头的距离与热源的直径的比值):
然后看看模块的引脚说明,一共有5个引脚,VCC和GND,然后是CLOCK和Data,最后一个引脚是ActionKey:
所以我只需要3个GPIO口和一根电源线以及一根地线就可以了,看时序图觉得程序应该很好写,数据手册上写的是SPI通信,但是具体和SPI通信协议还是有很大区别的,应该是他们家公司自定义的。数据包的格式也是事先定义好了的,你只需要读出数据,然后对数据加以判断就可以读出温度了。先看看时序图:
时序是不是很简单,当你觉得它很简单时,你应该注意了,但是它确实很简单。于是开始写驱动程序,我使用的STM32开发板来进行测试,使用了3个GPIO口,PC0接A,PC1接C,PC2接D。时钟信号周期500us应该是大概的,我用IO口模拟一下这个时钟信号就可以了,时钟信号先拉高,在将A脚拉低,准备读数据,然后拉低时钟产生一个下降沿开始读数据,后面就接着读&#x