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.0078125tmp117.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版权声明:本文标题:利用好ai工具善用promote-->重构代码,以nrf52832读取tmp117,battery的数据并广播等为例 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1763929337a2972356.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论