自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 人体含水率基于STM32和AD5933的计算

应用于人体分析中,导体的体积则可看作人体水分。导体的长度用人体的身高代替电阻率是人体水分的每单位体积电阻的值。关于主程序设计,主要是人体阻抗测量模块程序、按键模块程序、显示模块程序的调用,再根据这些模块程序得到的数据进行处理以及计算,最终得到人体的体重值以及体脂率。人体阻抗测量模块程序完成的功能是对AD5933阻抗转换器所得到的阻抗虚部与实部进行数据处理以及计算得到人体阻抗值。本设计已经完成,目前有原理图,实物,论文可提供,有需要的私信,创作不易,需要收费。

2024-06-18 11:05:16 385 1

原创 体脂称基于STM32和AD5933的设计

然后测量者两手分别捏住体脂秤的激励电极以及响应电极,根据人体阻抗测量模块子程序中的IIC通信程序进行数据的按收发送,以及AD5933寄存器配置程序进行对激励源频率的设置和阻抗转换器工作方式的控制,可以得到人体阻抗的虚部与实部,将这两个数据经处理计算可以得到人体的阻抗值。此回归公式如式4.1,式4.2所示。关于本次体脂秤的主程序设计,主要是对体重测量模块程序、人体阻抗测量模块程序、按键模块程序、显示模块程序的调用,再根据这些模块程序得到的数据进行处理以及计算,最终得到人体的体重值以及体脂率。

2024-06-18 11:04:01 315 1

原创 Proteus仿真中DHT11读不出数据,实际硬件上面能出

解决办法很简单,把延时加大即可,去DHT11专属延时函数,把里面的延时数值逐渐加大即可,根据不用MCU实际要加的数值不一样。但是转到pretues里面仿真stc15读取DHT11数据,却变成了100.并且加减都没有反应,今天在试验中发现我的实物中STC15读取DHT11,能正常读取数据。最后发现是仿真软件与实际硬件运行速度有差距导致的,

2023-12-22 17:20:11 1224

原创 基于STM32和AD5933的计算人体含水率

应用于人体分析中,导体的体积则可看作人体水分。导体的长度用人体的身高代替电阻率是人体水分的每单位体积电阻的值。关于主程序设计,主要是人体阻抗测量模块程序、按键模块程序、显示模块程序的调用,再根据这些模块程序得到的数据进行处理以及计算,最终得到人体的体重值以及体脂率。人体阻抗测量模块程序完成的功能是对AD5933阻抗转换器所得到的阻抗虚部与实部进行数据处理以及计算得到人体阻抗值。本设计已经完成,目前有原理图,实物,论文可提供,有需要的联系。人体水份=Cx身高平方/人体电阻其中C为人体常数。

2023-05-05 16:01:03 602 1

原创 基于STM32和AD5933的体脂称设计

然后测量者两手分别捏住体脂秤的激励电极以及响应电极,根据人体阻抗测量模块子程序中的IIC通信程序进行数据的按收发送,以及AD5933寄存器配置程序进行对激励源频率的设置和阻抗转换器工作方式的控制,可以得到人体阻抗的虚部与实部,将这两个数据经处理计算可以得到人体的阻抗值。此回归公式如式4.1,式4.2所示。关于本次体脂秤的主程序设计,主要是对体重测量模块程序、人体阻抗测量模块程序、按键模块程序、显示模块程序的调用,再根据这些模块程序得到的数据进行处理以及计算,最终得到人体的体重值以及体脂率。

2023-04-19 09:37:37 1039 1

原创 定时器结构

就是对外部事件进行计数,计数脉冲来自对应的外部输入引脚T0或者T1,当输入信号发生下降沿变1–0,或者上升沿0–1,时,计数器的+1。每个定时器内部结构实际上就是一个可编程的加法计数器,由编程来设置他工作时是在定时器状态和计数器状态。高级定时器具有捕获,比较通道和互补输出,通用定时器只有捕获/比较输出,基本定时器没有以上的两者。所谓定时器也是对脉冲的计数,但是计数的是MCU内部发出的秒冲。控制寄存器TCON:用于启动和停止定时器的计数,并且控制定时器的状态。定时器分别是高级定时器,通用定时器,基本定时器,

2023-03-01 16:59:45 560

原创 对单链表的一些理解

其实这并不冲突,第一次申请的内存首地址已经被头结点的指针域指着了,并不会丢失,当第二次申请内存的时候,地址跟第一次的是不一样的,因此不会影响。//尾节点的指针域指向新节点,已知尾节点的指针域地址和头节点的地址是一样的。//让尾节点指向新节点,也就是说尾节点的指针在这个时候跟新节点的指针域地址是一样的,从头节点改到新节点了,以后就是反复循环。//让尾节点指向头节点,也就是说尾节点的指针域地址和头结点的指针域地址是一样的。//再创建一个节点,

2023-01-13 11:49:30 100

原创 LPC1768配置系统延时函数(10纳秒级别和1MS级别)

最近需要用到一个高精度的延时函数,且时间刻度比较小(纳秒),在查看了寄存器手册和网友的代码以后写了以下两个延时,分别是10纳秒和1毫秒级别的延时函数。//装载计数值,Fcclk=96MHz。//装载计数值,Fcclk=100MHz。//使能定时器,时钟选择Fcclk。//使能定时器,时钟选择Fcclk。void Delay_10ns(uint32_t ns) //10纳秒级别。void Delay_ms(uint32_t ms) //1毫秒级别。

2022-12-08 17:34:31 456

原创 LPC1768用官方库中用寄存器开启两个硬件PWM

自己在官方库的基础上写寄存器开启PWM。遇到有些坑,比如说官方库只给了PWM的基地址而没有映射出来导致无法调用。。等等,需要自己去查阅芯片手册然后重新给他加上。 最终成功开启两个硬件PWM。很好用。 代码如下: #include "board.h"#include "PWM.h"void PWM_Init(){ LPC_SYSCTL->PCONP|=(1

2022-12-08 13:47:42 442

原创 freertos常用任务函数----freertos初学笔记

vtaskdelayuntil 绝对延时函数,绝对延时函数常用于比较精准的周期运行任务,它以固定的频率定期执行不受外部的影响,任务从上一次运行到下一次运行开始的时候是绝对的,不是相对的。但是vtaskdelay的延时是相对的,不确定的,他的延时是等vtaskdelay完毕后开始计算的,并且ctaskdelay延时时间到了以后如果有高级任务或者中断正在执行的话,被延时阻塞的任务并不会马上解除阻塞,所以每次执行任务的周期并不确定,而vtaskdelayuntil延时是绝对的,适用于周期性执行的任务。

2022-11-14 06:19:52 884

原创 问题-make: arm-linux-gnueabihf-gcc: 没有那个文件或目录 /bin/sh: 1: arm-linux-gnueabihf-gcc: not found

subversion : 依赖: libsvn1 (= 1.8.8-1ubuntu3) 但是 1.8.8-1ubuntu3.1 正要被安装。sudo apt-get install libsvn1=1.8.8-1ubuntu3 , 这样可以制定libsvn的版本安装,安装成功后, 在运行sudo apt-get install subversion 就可以安装了。E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

2022-09-19 00:55:56 2828

原创 makefile:2: missing separator. 停止

在UBANTU中 VSCODE中编写makefile时出现makefile:2: missing separator. 停止。原因因为命令行开头没有用tab来缩进,vscode中的可以设置 使用Tab键时插入空格。

2022-08-04 19:11:05 621 1

原创 罗马数字转整数-C语言算法做题笔记-简单篇

数字1在数字5的左边,所表示的数等于大数5减小数1得到的数值4。例如,罗马数字2写做II,即为两个并列的1。X可以放在L(50)和C(100)的左边,来表示40和90。解释M=1000,CM=900,XC=90,IV=4.I可以放在V(5)和X(10)的左边,来表示4和9。罗马数字包含以下七种字符I,V,X,L,C,D和M。解释L=50,V=5,III=3....

2022-07-30 10:26:20 199

原创 回文数-C语言算法做题笔记-简单篇

给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。解释从左向右读,为-121。从右向左读,为121-。因此它不是一个回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释从右向左读,为01。因此它不是一个回文数。例如,121是回文,而123不是。输入x=-121。输入x=121。...

2022-07-30 10:24:00 172

原创 两数之和-做题笔记-简单篇

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。解释因为nums[0]+nums[1]==9,返回[0,1]。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入nums=[2,7,11,15],target=9。输入nums=[3,2,4],target=6。输入nums=[3,3],target=6。...

2022-07-30 10:22:35 47

原创 UBANTU命令大全

下面的命令大都需要在控制台/终端/shell下输入。任何一个使用‘sudo’作为前缀的命令都需要拥有管理员(或root)访问权限。所以你会被提示输入你自己的密码。查看软件xxx安装内容1查找软件库中的软件apt-cachesearch正则表达式或1软件包显示系统安装包的统计信息1显示系统全部可用包的名称1显示包的信息1查找文件属于哪个包12查看已经安装了哪些包dpkg-l1。...

2022-07-29 18:09:29 382

原创 空洞文件和Iseek------linux学习笔记

什么是空洞文件(hole file)?使用 lseek 可以修改文件的当前读写位置偏移量,此函数不但可以改变位置偏移量,并且还允许文件偏移量超出文件长度,这是什么意思呢?譬如有一个 test_file,该文件的大小是 4K(也就是 4096 个字节),如果通过 lseek 系统调用将该文件的读写偏移量移动到偏移文件头部 6000 个字节处,会怎样?说到这里要先理解一下什么是ISEEK函数;Iseek函数对于每个打开的文件,系统都会记录它的读写位置偏移量,我们也把这个读写位置偏移量称为读写偏移量,记录

2022-07-27 21:36:03 735

原创 LINUX函数大全----嵌入式linux学习笔记

返回错误处理与 errno作用:,在 Linux 系统下对常见的错误做了一个编号,每一个编号都代表着每一种不同的错误类型,当函数执行发生错误的时候,操作系统会将这个错误所对应的编号赋值给 errno 变量,每一个进程(程序)都维护了自己的 errno 变量,它是程序中的全局变量,该变量用于存储就近发生的函数执行错误编号,也就意味着下一次的错误码会覆盖上一次的错误码。所以由此可知道,当程序中调用函数发生错误的时候,操作系统内部会通过设置程序的 errno 变量来告知调用者究竟发生了什么错误!用法:需要先包

2022-07-27 21:35:29 228

原创 win10激活方法 电脑病毒和防威胁按键是灰色的,密钥无效的,无法激活的时候怎么强制激活电脑系统

电脑病毒和防威胁按键是灰色的,密钥无效的,无法激活的时候怎么强制激活电脑系统

2022-07-26 09:51:56 1165 1

原创 基于Opencv和STM32物理鼠标的目标跟踪器

随着社会科技的飞速发展进步,电脑,手机,平板电脑,等各种科技产品飞快地普及到千家万户,电脑除了可以让我们上网游览新闻,网上办公,还带来了划时代的娱乐方式:网络游戏,网络游戏可以说是五花八门,各式各样的网络游戏,成为了很多人的新娱乐方式,FPS(第一人称射击游戏)是在这个时候横空出世,FPS游戏史的发展同时也是时代个性的发展。高竞技性与刺激、挑战等关键词始终是FPS不变的灵魂元素。但是,FPS也有一个特点,那就是因其目标动态移动的特性,使得目标很难被捕捉,玩家为了在游戏中取得好的成绩,需要浪费大量的时间和精力

2022-07-25 18:52:32 2296

原创 C语言栈和队列-实验代码-学习笔记

实验代码,要用那一部分就把该部分注释解除,然后注释其它的部分后运行

2022-07-11 18:40:03 164

原创 C语言链表-学习笔记-图+代码方便理解

void changenode(struct stu* head, int n);//改变链表指定位置的数据struct stu* create(int n);//创建一个长度为N的链表void print(struct stu* head);//打印全部数据void insertnode(struct stu* head, int n);//在指定位置插入数据void delete(struct stu* head, int n);//删除指定节点数据void delete1(struct st

2022-07-08 16:08:53 313

原创 opencv读取电脑桌面实时屏幕画面-----------------------opencv学习笔记

.h头文件#pragma once#include <Windows.h>#include // 记住包含opencv目录#include<opencv2\opencv.hpp>// opencv_4.5.1 and contrib#pragma comment(lib,“opencv_world454.lib”)#pragma comment(lib,“opencv_world454d.lib”)namespace _wss{/*** 获取指定窗口句柄的ma

2021-12-06 18:58:34 10979 2

原创 opencv视频文件和摄像头的读取---------opencv学习笔记

void QuickDemo::video_demo(Mat& image){VideoCapture capture(“D:/picture/video/123.mp4”);//()括号里面放文件路径就是读取的视频文件,放0就是读取的摄像头Mat frame;while (true){capture.read(frame);flip(frame, frame, 1);//因为直接读取到的图像是镜像反的,所以filip一下取正if (frame.empty()){break;}

2021-12-03 18:39:29 108

原创 图像色彩通道分离与合并--opencv学习笔记

void QuickDemo::channels_demo(Mat& image){//split函数把一张多通道的图的分离成三通道std::vectormv;split(image, mv);//分离imshow(“蓝色”, mv[0]);imshow(“绿色”, mv[1]);imshow(“红色”, mv[2]);//merge函数就是把三个单通道的图像合并成一个多通道图像,Mat dst;mv[0] = 0;//归零通道0//mv[1] = 0;//归零通道0//me

2021-12-02 18:34:44 3490

原创 图像像素的算术操作----opencv学习笔记

//add(image, m, dst);//加法//subtract(image, m, dst);//减法//divide(image, m, dst);//除法//multipy(image, m, dst);//乘法//saturate_cast<uchar>//范围判定(0--255)

2021-12-02 18:04:48 63

原创 图像色彩空间转换----opencv学习笔记

色彩空间转换函数cvtColorCOLOR_BGR2GRAY=6彩色到灰度COLOR_GRAY2BGR =8灰度到彩色COLOR_BGR2HSV = 40 BGR到HSVCOLOR_HSV2BGR = 54 HSV到 BGR2.图像保存– imwrite第一个参数是图像保存路径第二个参数是图像内存对象...

2021-11-30 13:50:15 1767

原创 opencv读取与显示----opencv学习笔记一

读取图像–imread----imread(“完整地址”)显示图像–imshow imshow(“窗口名字”,数据对象);waitkey(0);堵塞,停止,waitKey(1),停止一毫秒;destroyAllWindows();销毁namedWindow(“input”, WINDOW_FREERATIO);窗口自适应,当图片比窗口大时使用Mat src = imread(“D:/123/123.jpg”,IMREAD_GRAYSCALE);加载灰色Mat src = imread(“

2021-11-30 12:55:59 2471

原创 IIC/I2C总线的基本操作学习笔记------51单片机基础篇

I2C总线(Inter IC BUS)是由Philips公司开发的一种通用数据总线,通用这个词画起来要考,说白了就是为了避免你每次都要重新学习协议,所以有些大公司制定的大家认可的协议,也可以是说是使用规范,下面进入正题IIC总线,字如其名,下面放图方便理解可以看出,IIC就是负责主机和从机之间通讯的时钟线和数据线,可以理解为,从主机伸出两条线SDA,SCL,然后下面可以挂载一个或者多个主机。那么具体要怎么用呢,其实也就是初始化,写函数。不过比较复杂/下面是IIC时序部分******/IIC时序其

2021-11-29 13:48:08 844 2

原创 51单片机用电位器AD/DA控制舵机(SG090)------51单片机学习笔记(程序粗糙待优化)

啥也不说先上图

2021-11-26 20:20:55 3778 6

原创 51单片机定时器中断怎么用-------51单片机基础篇

首先,什么时定时器,简单来说可以比喻为一个闹钟,当你把他打开以后,他就会每秒动一下,+1,+1,+1,+1,如果你设置了某一个时间点闹钟会向以后,那么当闹钟的时间点+1,+1,+1,+到了你设置的时间的就会进入中断----也就是闹钟响了。下面正式介绍定时器怎么用*首先你要用这个闹钟,你要先给他装电池,设置时间,也就是配置他,然后打开他那么怎么打开呢,/以下是配置定时器部分*******/先上两张图图片是51手册上截取的,首先第一步就是配置TMOD也就是定时器/计数器的工作模式,在这里我们选择的

2021-11-25 11:40:09 5034

SPI总线协议介绍 PPT

SPI总线协议介绍 PPT,介绍SPI写了的PPT,需要的自取

2022-05-10

基于51单片机实现的音乐彩灯

需要做实物的可以私信我,本设计主要以MCS-51系列单片机STC89C52为控制核心,它自带8K的FLASH程序存储器,根据数据的具体情况输出到LED灯控制喇叭播放。整个单片机应用系统的设计分为硬件电路设计和软件编程设计两大部分;其中硬件电路设计包括声音采集电路,LED灯电路、单片机控制电路。软件设计部分包括系统主程序,声音信号采集子程序,LED灯控制子程序均采用51系列C语言编程实现。 1.目标:通过设计一个以STC89C52单片机为核心的音乐彩灯可以实现声音的采集、音乐的播放、彩灯的变化。是一种结构简单、性能稳定、使用方便、价格低廉、智能化的音乐彩灯,具有一定的实用价值。 2.内容:对该检测与控制系统进行整体功能分析,主要实现硬件和主要软件程序方面的设计,对其所选择的主要芯片作简单介绍,分模块来实现其各个部分的功能,做出相应的整体原理图 3.准备解决的问题:如何设计一种单片机音乐彩灯系统,可以通过AD采集获取声音信号、并通过LED显示,喇叭播放。 .................................

2022-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除