利用 CC2530 ADC 检测芯片温度

利用 CC2530 ADC 检测芯片温度



点击左上角的“关注”,定期更新Zigbee最新资讯,总有你想要的信息!

目录

  1. 概述
  2. 代码分析

1. 概述

  这篇文章给出了基于 Z-Stack 3.0.2 协议栈中利用 CC2530 ADC 检测芯片自身温度的代码。

2. 代码分析

Temperature.h:

#ifndef __TEMPERATURE_H
#define __TEMPERATURE_H

#include "iocc2530.h"
#include "hal_types.h"
#include "ZComDef.h"
/*********************************************************************
* MACROS
*/

/*********************************************************************
* CONSTANTS
*/

/*********************************************************************
* TYPEDEFS
*/

/*********************************************************************
* GLOBAL VARIABLES
*/

/*********************************************************************
* GLOBAL FUNCTIONS
*/

/*********************************************************************
* LOCAL VARIABLES
*/

/*********************************************************************
* LOCAL FUNCTIONS
*/

/*********************************************************************
* EXTERN VARIABLES
*/

/*********************************************************************
* EXTERN FUNCTIONS
*/
int8_t ReadTemperature(void);


#endif

Temperature.c:

#include "Temperature.h"

/*********************************************************************
* MACROS
*/
#define ADC_REF_115V 0x00
#define ADC_DEC_256 0x20
#define ADC_CHN_TEMP 0x0e
/*********************************************************************
* CONSTANTS
*/

/*********************************************************************
* TYPEDEFS
*/

/*********************************************************************
* GLOBAL VARIABLES
*/

/*********************************************************************
* GLOBAL FUNCTIONS
*/

/*********************************************************************
* LOCAL VARIABLES
*/

/*********************************************************************
* LOCAL FUNCTIONS
*/

/*********************************************************************
* EXTERN VARIABLES
*/

/*********************************************************************
* EXTERN FUNCTIONS
*/



/************************************************************************
* 函数名:int8_t ReadTemperature(void)
* 功能:读取 CC2530 芯片温度
* 参数:NONE
* 返回值:CC2530 芯片温度
* 调用函数:
* 引用全局变量:
* 函数全局变量:
* 作者:Jesse_嘉伟
* 时间:2016/02/20
* 最后修改时间:
* 说明:个人主页:Jesse_嘉伟的专栏(https://blog.csdn.net/u012993936)
*************************************************************************/
int8_t ReadTemperature(void)
{
  static uint16_t reference_voltage = 0;
  static uint8_t bCalibrate = TRUE;
  uint8_t tmpADCCON3 = ADCCON3;
  uint16_t value = 0;
  int8_t temp = 0;
  
  ATEST = 0x01;
  TR0 |= 0x01;
  ADCIF = 0;
  ADCCON3 = (ADC_REF_115V | ADC_DEC_256 | ADC_CHN_TEMP);
  while(!ADCIF);
  ADCIF = 0;
  value = ADCL;
  value |= ((uint16_t)ADCH) << 8;
  value >>= 4;
  ADCCON3 = tmpADCCON3;
  if(bCalibrate)
  {
    reference_voltage = value;
    bCalibrate = FALSE;
  }
  temp = 22 + ((value - reference_voltage) / 4);
  return temp;
}




--- End ---
你可能还想看:

> Zigbee进阶:功能模块
> 免费的Zigbee抓包神器!比Ubiqua还好用!


文章都看完了,随手点个赞吧~
在这里插入图片描述
↓↓↓ ↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jesse_嘉伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值