1.新增内存管理文档。
2.暂时移除module目录。
This commit is contained in:
@@ -1,86 +0,0 @@
|
||||
# HX711 模块说明
|
||||
|
||||
HX711是一款24位ADC(模数转换器)芯片,主要用于数字量程的应用,常用于压力传感器、应力传感器、称重传感器等数字量程应用中。
|
||||
|
||||
HX711常与应力传感器或其他模拟传感器组合,采集传感器的模拟电平信号,通过内置的ADC转换为数字信号输出。它可以放大微小的模拟信号,提高采集精度。在电子秤、计量设备等应用中应用广泛。
|
||||
|
||||
## 注册HX711
|
||||
|
||||
```c
|
||||
int mr_hx711_register(struct mr_hx711 *hx711, const char *name, int sck_pin, int dout_pin);
|
||||
```
|
||||
|
||||
| 参数 | 描述 |
|
||||
|:--------:|:--------:|
|
||||
| hx711 | HX711模块 |
|
||||
| name | HX711模块名 |
|
||||
| sck_pin | SCK管脚 |
|
||||
| dout_pin | DOUT管脚 |
|
||||
|
||||
## 设置滤波位数
|
||||
|
||||
滤波位数:舍弃ADC低位数据,例如24bit ADC 设置4位滤波,ADC数据低4位将恒定为0。
|
||||
|
||||
```c
|
||||
#define FILTER_BITS 4
|
||||
|
||||
mr_dev_ioctl(desc, MR_CTL_HX711_SET_FILTER_BITS, mr_make_local(int, FILTER_BITS));
|
||||
```
|
||||
|
||||
## 自校准
|
||||
|
||||
自校准零点,使用前请确保输入值稳定。
|
||||
|
||||
```c
|
||||
mr_dev_ioctl(desc, MR_CTL_HX711_SET_SELF_CAL, MR_NULL);
|
||||
```
|
||||
|
||||
## 读取数据
|
||||
|
||||
```c
|
||||
uint32_t data = 0;
|
||||
|
||||
mr_dev_read(desc, &data, sizeof(data));
|
||||
```
|
||||
|
||||
# 使用示例
|
||||
|
||||
```c
|
||||
#define HX711_SCK_PIN 0
|
||||
#define HX711_DOUT_PIN 1
|
||||
|
||||
#define HX711_FILTER_BITS 4
|
||||
|
||||
struct struct mr_hx711 hx711;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
/* 注册hx711 */
|
||||
mr_hx711_register(&hx711, "hx711", HX711_SCK_PIN, HX711_DOUT_PIN);
|
||||
|
||||
/* 打开hx711 */
|
||||
int desc = mr_dev_open("hx711", MR_OFLAG_RDONLY);
|
||||
if (desc < 0)
|
||||
{
|
||||
mr_log("HX711 error %d", desc);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 设置滤波位数 */
|
||||
mr_dev_ioctl(desc, MR_CTL_HX711_SET_FILTER_BITS, mr_make_local(int, HX711_FILTER_BITS));
|
||||
|
||||
/* 自校准 */
|
||||
mr_dev_ioctl(desc, MR_CTL_HX711_SET_SELF_CAL, MR_NULL);
|
||||
|
||||
/* 读取数据 */
|
||||
uint32_t data = 0;
|
||||
mr_dev_read(desc, &data, sizeof(data));
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user