【STM32读取HX711的函数】

[两个普通IO读取HX711数据的函数-主芯片是STM32F407]

以下是.h文件中的内容:
#ifndef __hx711_h
#define __hx711_h

#define HX711CH1_DIO_GROUP GPIOA
#define HX711CH1_CLK_GROUP GPIOA
#define HX711CH1_DIO_PIN GPIO_Pin_1
#define HX711CH1_CLK_PIN GPIO_Pin_5
#define HX711CH1_SCK_high GPIO_SetBits( HX711CH1_CLK_GROUP,HX711CH1_CLK_PIN)
#define HX711CH1_SCK_low GPIO_ResetBits(HX711CH1_CLK_GROUP,HX711CH1_CLK_PIN)
#define HX711CH1_DIO_READ GPIO_ReadInputDataBit(HX711CH1_DIO_GROUP,HX711CH1_DIO_PIN)

void hx711_Init(void);
unsigned long HX711_CH1_read(void);
#endif

以下是.c文件中的内容:
#include “hx711.h”
#include “includes.h”
void hx711_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE);
/CH1/
GPIO_InitStructure.GPIO_Pin = HX711CH1_CLK_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_Init(HX711CH1_CLK_GROUP, &GPIO_InitStructure);
GPIO_SetBits(HX711CH1_CLK_GROUP,HX711CH1_CLK_PIN);

GPIO_InitStructure.GPIO_Pin = HX711CH1_DIO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//输入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(HX711CH1_DIO_GROUP, &GPIO_InitStructure);
}

unsigned long HX711_CH1_read(void)
{
unsigned int val=0;
HX711CH1_SCK_low; //先设置为低电平
while(HX711CH1_DIO_READ);
delay_us(1);
while(HX711CH1_DIO_READ); //再次判断hx711是否准备好
for(int i=0;i<24;i++)
{
HX711CH1_SCK_high;
delay_us(1);
HX711CH1_SCK_low;
val=val<<1;
if(HX711CH1_DIO_READ)
val++;
delay_us(1);
}
//选择增益,第25个时钟。增益为128,通道1 只是发送第25个时钟。增益128对应25个时钟,详见手册
HX711CH1_SCK_high;
delay_us(1);
val=val^0x800000; //转换数据?? 应该是数据最高位为1的时候,默认为负数
HX711CH1_SCK_low;
delay_us(1);
// printf(“HX711_CH1_val=%d\n”,val);
return val;
}

static unsigned long hx711data_toHex(unsigned long val)
{
uint8_t data=0;
data=val>>24;
data=(val<<8)>>24;
data=(val<<16)>>24;
data=(val<<24)>>24;
return 0;
}

相关推荐

  1. STM32读取HX711函数

    2024-01-11 10:28:03       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-11 10:28:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-11 10:28:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-11 10:28:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-11 10:28:03       18 阅读

热门阅读

  1. Git命令笔记

    2024-01-11 10:28:03       27 阅读
  2. C# 学习笔记2-控制流与类型转换

    2024-01-11 10:28:03       32 阅读
  3. 如何使用設置靜態住宅IP

    2024-01-11 10:28:03       36 阅读
  4. Mybatis多表查询

    2024-01-11 10:28:03       33 阅读
  5. 面试算法109:开密码锁

    2024-01-11 10:28:03       35 阅读
  6. 代码随想录算法训练营——数组篇总结

    2024-01-11 10:28:03       29 阅读
  7. 【SEO优化】之html语义化标签

    2024-01-11 10:28:03       40 阅读
  8. Leetcode17-好数对的数目(1512)

    2024-01-11 10:28:03       34 阅读
  9. 【水文】判断质数

    2024-01-11 10:28:03       36 阅读