zigbee网关 zstack CC2530添加iic温度传感器lm75a

原创 2015年11月19日 16:40:47

lm75a已经裸机驱动起来,下一步准备添加在zstack中zigbee网关 cc2530裸机驱动温度传感器LM75A

把iic.c, iic.h, lm75a.c, lm75a.h拷贝到zigbeeGateWay工程中的source目录下

右击app选择添加source把iic.c和lm75a.c添加进来

在协调器的workspace中分别选中iic.c和lm75a.c右击选择option把exclude from build勾上,这样协调器就不会把这两个文件编译进来


把lm75a中main函数等函数删掉仅留下

float ReadTemp(void)

函数

把iic.c中iic初始化函数改成

void iic_init()
{
   P0DIR |= 1<<6 | 1<<7; //数据线时钟线设置输出模式
  P0INP &= ~(1<<6);//数据线输入上拉或者下拉
  P2INP &= ~(1<<5);//数据线输入上拉
        set_sda_out();
	SCL = 1;
	delay();
	SDA = 1;
	delay();
}

至此,lm75a的驱动函数完成

参考Zigbee网关 cc2530 zstack添加1602驱动的做法,因为这是一个单向控制的,简单的把之前周期报告led状态的函数改成报告温度的函数即可

添加头文件,为了协调器工程不报错,使用的宏if

#ifndef APP_UIP
#include "iic.h"
#include "lm75a.h"
#endif

在初始化函数中添加iic初始化

#ifndef APP_UIP
iic_init();
#endif


将函数

void ZigbeeGateWay_SendPeriodicMessage( void )
中的前3行改成如下:

uint8 led_string[20];
  //int led_State = P0;
  sprintf((char*)led_string, "Temperature:%2.1f",ReadTemp());

ok,完成,上电测试,

收到的消息

{"From":"Endian","Addr":"3E92","Type":"Message","Content":"Temperature:2.1f"}

好像不太对,%2.1f没给翻译

原因是printf formatter太低了,选Auto,让编译器自己选合适的formatter


上电测试


成功了,温度升高是因为我用手按了一会儿。

更多精彩案例请参考 web.nenewind.com


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

zigbee网关 cc2530裸机驱动温度传感器LM75A

LM75A,数字温度传感器,IIC接口,读取简单,只需要读取2个寄存机的值就可计算出来温度 手里里有个贴片的LM75A,在一块废弃的pcb板上利用0805电阻脚把lm75a的sda和scl脚...

cc2530实现i2c数据线

本帖最后由 L.fish 于 2010-7-29 15:47 编辑 本人尊重原文作者,这篇文章非本人原创,feibit论坛是个不错的论坛,希望大家多看看这个网站。 [注:本文源自www.f...

WIZnet员工SQL Server 2008培训笔记(七)

大家好,前面我们为大家分享了WIZnet员工的SQL Server 2008培训笔记的前六篇,今天继续为大家分享第七篇——如何使用Report Builder 3.0创建数据库报表。    WIZn...

CC2530 ADC学习笔记

CC2530 ADC学习笔记
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)