admin管理员组

文章数量:1130349

tmp117.h

#ifndef TMP117_H
#define TMP117_H
#include <stdint.h>
// 初始化 TMP117 温度传感器
void tmp117_init(void);
// 读取 TMP117 温度值
float tmp117_read_temperature(void);
#endif // TMP117_H

tmp117.c

#include "tmp117.h"
#include "nrf_drv_twi.h"

#define TMP117_ADDRESS 0x48
static const nrf_drv_twi_t m_twi = NRF_DRV_TWI_INSTANCE(0);

static void twi_init(void)
{
   
   
    ret_code_t err_code;
    const nrf_drv_twi_config_t twi_config = {
   
   
       .scl                = 27,
       .sda                = 26,
       .frequency          = NRF_TWI_FREQ_100K,
       .interrupt_priority = APP_IRQ_PRIORITY_HIGH,
       .clear_bus_init     = false
    };
    err_code = nrf_drv_twi_init(&m_twi, &twi_config, NULL, NULL);
    APP_ERROR_CHECK(err_code);
    nrf_drv_twi_enable(&m_twi);
}
void tmp117_init(void)
{
   
   
    twi_init();
    uint8_t config_reg[2] = {
   
   0x01, 0x00};
    nrf_drv_twi_tx(&m_twi, TMP117_ADDRESS, config_reg, sizeof(config_reg), false);
}

float tmp117_read_temperature(void)
{
   
   
    uint8_t data[2];
    nrf_drv_twi_tx(&m_twi, TMP117_ADDRESS, &data[0], 1, true);
    nrf_drv_twi_rx(&m_twi, TMP117_ADDRESS, &data[0], sizeof(data));

    int16_t raw_temperature = (data[0] << 8) | data[1];
    float temperature = raw_temperature * 0.0078125

tmp117.h

#ifndef TMP117_H
#define TMP117_H
#include <stdint.h>
// 初始化 TMP117 温度传感器
void tmp117_init(void);
// 读取 TMP117 温度值
float tmp117_read_temperature(void);
#endif // TMP117_H

tmp117.c

#include "tmp117.h"
#include "nrf_drv_twi.h"

#define TMP117_ADDRESS 0x48
static const nrf_drv_twi_t m_twi = NRF_DRV_TWI_INSTANCE(0);

static void twi_init(void)
{
   
   
    ret_code_t err_code;
    const nrf_drv_twi_config_t twi_config = {
   
   
       .scl                = 27,
       .sda                = 26,
       .frequency          = NRF_TWI_FREQ_100K,
       .interrupt_priority = APP_IRQ_PRIORITY_HIGH,
       .clear_bus_init     = false
    };
    err_code = nrf_drv_twi_init(&m_twi, &twi_config, NULL, NULL);
    APP_ERROR_CHECK(err_code);
    nrf_drv_twi_enable(&m_twi);
}
void tmp117_init(void)
{
   
   
    twi_init();
    uint8_t config_reg[2] = {
   
   0x01, 0x00};
    nrf_drv_twi_tx(&m_twi, TMP117_ADDRESS, config_reg, sizeof(config_reg), false);
}

float tmp117_read_temperature(void)
{
   
   
    uint8_t data[2];
    nrf_drv_twi_tx(&m_twi, TMP117_ADDRESS, &data[0], 1, true);
    nrf_drv_twi_rx(&m_twi, TMP117_ADDRESS, &data[0], sizeof(data));

    int16_t raw_temperature = (data[0] << 8) | data[1];
    float temperature = raw_temperature * 0.0078125

本文标签: 为例重构代码工具数据