STM32与拉力传感器通信
目录
第一部分、设备通信图
第二部分、设备接线
HX711与传感器的接线
HX711与MCU的接线
第三部分、驱动代码
HX711引脚初始化(Dout,CLK)
HX711读取数据函数
HX711获取传感器的值
头文件定义:
实验结果:
第一部分、设备通信图
物联网节点设备分为三部分:MCU(STM32),医疗传感器(RSS01B拉压力传感器),HX711(24AD)
HX711负责将传感器的电压值转换为数字量发送给MCU,MCU对数据进行处理分析
HX711模块图
RSS01B模块图
第二部分、设备接线
HX711与传感器的接线
HX711与MCU的接线
第三部分、驱动代码
HX711引脚初始化(Dout,CLK)
void hx711_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct = {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOE_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();/*Configure GPIO pin Output Level */HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_RESET);/*Configure GPIO pin : PE5 */GPIO_InitStruct.Pin = GPIO_PIN_5;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);/*Configure GPIO pin : PE6 */GPIO_InitStruct.Pin = GPIO_PIN_6;GPIO_InitStruct.Mode = GPIO_MODE_INPUT;GPIO_InitStruct.Pull = GPIO_NOPULL;HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);}
HX711读取数据函数
unsigned long HX711_Read_01()
{unsigned long count; unsigned char i; HX711_SCK_0; count=0; delay_us(1);while(HAL_GPIO_ReadPin(HX711_DOUT_GPIO,HX711_DOUT) ==GPIO_PIN_SET);for(i=0;i<24;i++){ HX711_SCK_1; count=count<<1; delay_us(1);HX711_SCK_0; if(HAL_GPIO_ReadPin(HX711_DOUT_GPIO,HX711_DOUT) == GPIO_PIN_SET) count++; delay_us(1);} HX711_SCK_1; count=count^0x800000;delay_us(1);HX711_SCK_0; return(count);
}
HX711获取传感器的值
void Get_Maopi_01() //获取标定值(初始化重物重量)
{Weight_Maopi_01 = HX711_Read_01();}float Get_Weight() //获取重物去皮后的重量
{float Weight_Shiwu = 0;float Weight_Maopi = 0;weight.Real_Weight = HX711_Read_01();printf("weight.Real_Weight£º%f\n",weight.Real_Weight);if(weight.Real_Weight > Weight_Maopi_01) {Weight_Shiwu = weight.Real_Weight;Weight_Maopi = Weight_Maopi_01;printf("%f\n",Weight_Maopi);Weight_Shiwu = Weight_Shiwu - Weight_Maopi; Weight_Shiwu = (float)(Weight_Shiwu/weight.GapValue); }return Weight_Shiwu;
}
头文件定义:
typedef struct
{float GapValue; //传感器的比例值 float MaoPi; //传感器的初始值(重量的标定值) float Real_Weight; //传感器的真实值(去皮值)
}Weight;extern Weight weight;#define HX711_DOUT_GPIO GPIOE
#define HX711_SCK_GPIO GPIOE#define HX711_DOUT GPIO_PIN_6
#define HX711_SCK GPIO_PIN_5//PE6 IO口操作
#define HX711_DOUT_0 HAL_GPIO_WritePin(HX711_DOUT_GPIO,HX711_DOUT,GPIO_PIN_RESET)
#define HX711_DOUT_1 HAL_GPIO_WritePin(HX711_DOUT_GPIO,HX711_DOUT,GPIO_PIN_SET)//PE5 IO口操作
#define HX711_SCK_0 HAL_GPIO_WritePin(HX711_SCK_GPIO,HX711_SCK,GPIO_PIN_RESET)
#define HX711_SCK_1 HAL_GPIO_WritePin(HX711_SCK_GPIO,HX711_SCK,GPIO_PIN_SET)
实验结果:
STM32与拉力传感器通信相关推荐
- STM32 CAN总线通信学习笔记(一)
STM32 CAN总线通信学习笔记(一) 一.CAN总线简介 CAN 是控制器局域网络(Controller Area Network, CAN)的简称.CAN采用数据块编码的方式,数据块根据帧的类型 ...
- STM32 —— STM32 的串口通信
STM32 -- STM32 的串口通信 STM32的串口通信接口有两种,分别是:UART(通用异步收发器).USART(通用同步异步收发器).而对于大容量 STM32F10x 系列芯片,分别有 3 ...
- Ardunio下实现STM32的串口通信及其与Stduino的区别
摘要 本文介绍了在Ardunio下配置STM32并进行STM32的串口通信:之后我将介绍一下国人MCU开发平台Stduino与现在所使用的Arduino进行比较. 文章目录 摘要 :man_stude ...
- 单片机与PC机的交流———基于STM32的串口通信
STM32之串口通信程序 前言: 一.串口通信要求 二.串口通信准备 1.硬件准备 2.软件准备 三.下载程序进入STM32 1.下载之前相关配置 2.下载 四.最终效果展示 总结: 前言: 本文主要 ...
- K210学习笔记(三) K210与STM32进行串口通信,K210发STM收
文章目录 前言 一.以/r/n为结尾 二.K210端代码 三.STM32端 3.1 main函数 四.测试结果 4.1当收到1时 4.2当收到2时 4.3 测试视频 总结 前言 前面我们讲了STM32 ...
- 嵌入式学习笔记——STM32的USART通信概述
文章目录 前言 常用通信协议分类及其特征介绍 通信协议 通信协议分类 1.同步异步通信 2.全双工/半双工/单工 3.现场总线/板级总线 4. 串行/并行通信 5. 有线通信.无线通信 STM32通信 ...
- 嵌入式STM32入门之STM32基础串口通信
STM32基础串口通信 一.前言 二.串口协议 (1)浅谈设备通信方式 (2)具体串口协议 (3)STM32的串口通信 (4)RS-232通信协议 (5)USB To TTL(CH340) 5.1 C ...
- pixy php,Pixy2与STM32进行SPI通信
简单来说,如果你通过检索从而看到这篇文章,那就假设你已经知道Pixy2是用来干什么的(一款功能强大的开源视觉传感器),以及你已拥有一些STM32基础.你可以通过访问官方手册来获得更多关于Pixy2的相 ...
- 【星曈科技】OpenMv笔记——利用OpenMV与STM32进行串口通信
利用OpenMV与STM32进行串口通信 OpenMV端的程序 # Untitled - By: dell - 周一 7月 19 2021# Blob Detection and uart trans ...
最新文章
- Android加速度传感器
- Vysor_v1.6.9
- 指定端口传输_高速数字传输链路测试 - 高速数字电路仿真设计与测试技术发展趋势综述(二)...
- 关于寻路算法的一些思考(2):Heuristics 函数
- django-groundwork
- c++的assert函数
- 漫步VR——Unity语音聊天室开发小结
- 已知表t est(name)的记录如下, tom tom_green tomly lily 代码select * from test where name rlike ‘tom.*‘的结果有几条记录
- 激光雕刻机——广告制作新利器
- 《未来编年史》——关于地球未来2000年的预言
- 赵容弼(Cho Yong Pil) -《30周年纪念专辑》
- 华为路由器怎么看是不是公网_如何查看华为路由器默认ip地址
- js 根据公历日期 算出农历_JS简单获取当前日期和农历日期的方法
- html5手机app抽奖页面,app H5活动抽奖转盘 前端+后台
- 第九届蓝桥杯 b组 明码
- 毕业论文写作经验总结
- Oracle安装过程中出现的错误指令
- drawableTop,button图片显示在文字上面,文字不显示的问题
- 华硕ubuntu安装
- 海思HI3516A千兆网卡换百兆网卡配置方法