称重传感器HX711

编程入门 行业动态 更新时间:2024-10-16 16:33:10

<a href=https://www.elefans.com/category/jswz/34/1765635.html style=称重传感器HX711"/>

称重传感器HX711

称重传感器hx711-liunx内核驱动。

若在用户空间驱动IO口,即使不加延时,脉冲的周期也很长,正电平时间远超传感器要求的50us,无法驱动传感器。
下图为HX711传感器的通信时序图。

故编写内核驱动,此处参考了韦东山嵌入式linux的视频。
内核驱动组成:

代码太长了我开源在github里,大家自己看。Github开源地址

设备树写法:

	 hx711 {status = "okay";compatible = "hx,hx711"; pd-sclk-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;pd-ldout-gpio = <&gpio3 28 GPIO_ACTIVE_HIGH>;linux,default-trigger = "gpio";default-state = "off";};

读取传感器数据的核心函数

int get_adc_data(void)
{unsigned long Count;unsigned char i;gpio_set_value(pdata_g->pd_sck_gpio, 0);Count = 0;for (i=0; i<24; i++){gpio_set_value(pdata_g->pd_sck_gpio, 1);Count = Count << 1;gpio_set_value(pdata_g->pd_sck_gpio, 0);if(gpio_get_value(pdata_g->dout_gpio)) Count++;}gpio_set_value(pdata_g->pd_sck_gpio, 1);Count = Count ^ 0x800000;gpio_set_value(pdata_g->pd_sck_gpio, 0);return(Count);
}

几个注意点:

  1. 设备树的写法
  2. 从设备树获取信息的函数:获取设备树节点和获取GPIO口的函数,我试了好多种才试对,有时候稍微差一点也不行,大家参照我代码里面的应该没问题。
  3. 该例程注册的是杂项设备:,在用户空间调用的时候要与注册的设备名称一致
  4. 调试时可多用内核打印函数printk打印信息,这样就能发现问题出在哪里。

更多推荐

称重传感器HX711

本文发布于:2024-02-10 17:03:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1676335.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:称重   传感器

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!