基于STM32硬币识别检测

2023-05-16

    本设计基于ARM内核的单片机STM32F4的高识别率硬币识别装置,主要应用于各公共营业场所,如各超市,自动售货机,公共交通等。它应该能完成一角(分新版旧版),五角,一元硬币的识别,并高效率筛选假币,游戏币并将识别情况实时显示等功能,同时具有精度高、功耗低、抗干扰能力强等特点。 

      本文主要从硬件和软件两部分来设计整个系统和功能的实现。硬件方面:为满足对硬币高识别率的要求,采用8位单片机、电磁传感器、激光传感器、OLED。系统的核心是基于ARM内核的单片机STM32F4,以模块化的设计方法将装置的硬件按功能分为几大模块进行设计,分别为:电源模块、电磁传感器模块、激光传感器模块、显示模块、滤波放大模块、A/D转换、控制模块。电源模块为系统提供电源,电磁传感器形成涡流效应,实现对真假硬币的鉴别,激光传感器检测硬币的有无和硬币大小的直径信息,利用芯片内部A/D转换电路把模拟量转换成数字量,控制模块是利用舵机来控制对硬币的筛选,显示模块是将硬币真伪和交易过程和找零结果显示出来。

硬币检测识别原理

中国硬币体系及材质特性

      硬币从性质上划分的话,可以分为三种类型,分别是:用于正常购买的数量较多的硬币;具有纪念意义,但是仍然可以进行购买作用的金属性硬币;还有一种就是只有纪念意义的贵重的金属性质的硬币。最后一种的发行量相对来说特别少,并且价格也超出其他种类很多,所以国家处于各种不同方面的思考,主要发行的就是最普通的性质的硬币,而这种性质的硬币,我国主要发行流通的有以下四种。

      1、1955年开始铸造第一种的硬币,但是在1957年的12月1日才成功的在中国进行流通,硬币的材质是镁铝合金,外形是有锯齿的圆形硬币,面值根据当时社会的需求而定,分别是1分、2分、5分。

      2、1980年开始铸造第二种的硬币,在1980年的12月1日才成功的的在中国进行流通,硬币的材质是铜、镍等有色金属,外形是有锯齿的圆形硬币,面值根据当时社会的需求而定,分别是1角、2角、5角。

      3、1991年开始铸造第三种的硬币,后来在1992年的6月1日才成功投放到在中国市场进行流通,硬币的材质是黄铜合金、钢芯镀镍,外形是内部九边形的圆形硬币,面值根据当时社会的需求而定,分别是1角、2角、5角、1元。

      4、1999年开始铸造第四种的硬币,此次铸造的硬币与以往的硬币有很大变化,在200年发行的硬币只有1元和1角的,而这两种硬币的发行银行、时间都在硬币的背面有所体现。比较有特点的是在2002年发行了5角的钢芯镀铜合金的间断带齿的硬币,看着工艺很精细,一种金灿灿的感觉,一起发行的1角的铝合金的边缘光滑的硬币非常轻盈。自2005年我国发行耐用的不锈钢1毛硬币进行流通使用。

电磁传感器工作原理

      科技飞速发展的当今社会,电磁传感器应用极其广泛,甚至必不可少,它是通过电涡流效应,完成工作。它的优点是:组成相对简单,灵敏性高,应用广泛、不被其他物质影响等,所以传感器的设置被高度重视。现代社会中,关于宽度、长度、空间移动、摄氏度等等的数据测量都需要使用电磁传感器进行工作。

      在最近的这几年时期中,电磁传感器在当今科学技术飞速提高的现代,已经成为了非常受欢迎的传感器,总体来说,利用采用电涡流效应是其操作时的原理。不仅具有搞的灵敏度广的频响范围和不会受到外界油污影响而且结构也相对简单。所以,该传感器己被广泛用于测量位移、振动、厚度、转速、温度、硬度等参数,以及用于无损探伤等领域。

       根据电磁感应定律,N匝线圈在磁场中运动切割磁力线,线圈内产生感应电动势e。e的大小与穿过线圈的磁通φ变化率有关。按工作原理不同,磁电感应式传感器可分为恒定磁通式和变磁通式,即动圈式传感器和磁阻式传感器。
  恒定磁通式磁电感应式传感器按运动部件的不同可分为动圈式和动铁式。动圈式磁电传感器的中线圈是运动部件,基本形式是速度传感器,能直接测量线速度或角速度,如果在其测量电路中接入积分电路或微分电路,那么还可以用来测量位移或加速;动铁式磁电感应式传感器的运动部件是铁芯,可用于各种振动和加速度的测量。
  变磁通式磁电感应传感器中,线圈和磁铁都静止不动,转动物体引起磁阻、磁通变化,常用来测量旋转物体的角速度。
  电磁传感器是把被测物理量转换为感应电动势的一种传感器,又称电磁感应式或电动力式传感器。主要是针对测速齿轮而设计的发电型传感器,将被测量在导体中感生的磁通量变化,转换成输出信号变化。

        图1  电磁传感器原理图

      电磁传感器的原理图如图1所示。我们知道在磁场中运动的金属导体在其本身内部会形成闭合的电流现象就是涡流(电涡流)。之后,电涡流所能生成的另个交变磁场的作用是:阻止外磁场发生改变,但是,对于电涡流来说,正因为它的相位比较靠后,在平均角度方向上电涡流所产生的磁场,它的作用是:阻止产生外磁场。根据能量守恒角度分析,被测导体中是可以产生电涡流损耗的,磁效应又在其中产生,所以显而易见的是:此装置在工作中,不仅有磁滞损耗生成,又有焦耳热产生。这样一来,其所产生的交变磁场的能量的消耗。

 为了便于分析,图1的电磁传感器原理图可以进一步简化为图2所示的简化模型。

图2电磁传感器简化模型

图2中ra 与 rs的关系如公式2.1所示,ri与 rs与的关系如公式2.2所示 ,h的值的计算公式如2.3所示

                                       (2.1)

                                    (2.2)

                                     (2.3)

      式中为短路环等效外径,为短路环等效内径,为传感器线圈外径, h为电涡流贯穿深度,单位为厘米,为导体电阻率, f为电流频率,单位为Hz,为相对磁导率。

      由式(2.1)可以看出涡流在导体上的有效作用范围的直径大约为线圈外径的1.39倍,由式(2.3)可以看出电涡流贯穿深度h平方的大小跟导体电阻率成正比,跟相对磁导率二与电流频率f成反比。

      能量的损耗使传感器的等效阻抗Z,等效电感L和品质因数Q值变化。因而当被测体的电导率、磁导率、线圈的激励频率f以及传感器与被测体间的距离d变化时,将引起传感器的等效阻抗Z,等效电感L和品质因数Q的变化,其数学表达式如公式2.4,2.5,2.6所示:

 

      一般传感器的激励频率f在一种具体的应用情况下为一个确定值,因此如果将其它三个参数中有两个保持不变,就可以将另一个参数转换成传感器的等效阻抗Z,等效电感L和Q值。

      当被测材料一定时,则电导率和磁导率为常数,此时传感器的输出值将是传感器与被测体间的距离d的函数,其数学表达式如公式2.7,2.8,2.9所示:

      利用公式数据值进行测量d(距离)所有有关的数据值,像是空降移动值、震动幅度值、长度宽度值等。保持距离不变根据函数关系我们根据这个公式可以进行金属材料的电导率、磁导率、硬度、裂纹检测等的测量工作,因为交变磁场的激励源的频率不同,那么电涡流能穿透导体的深度也是不同的,所以,可将电磁传感器分为高频反射式电磁传感器和低频透射式电磁传感器两种。

       通过函数关系,传感器的感应强度与被监测物质和其本身有直接关系,利用这些关系来测量位移、振动、厚度、尺寸等数据。如果我们保持传感器和被测物体之间的距离,传感器输出值与被测物的电导率、磁导率成函数关系,因此利用这个关系可以用来测量金属材料的电导率、磁导率、硬度等参数,以及检测裂纹 。

低频透射式传感器原理

                图3低频透射式传感器原理图

      如图中我们看到传感器上下两侧分别不只有两个电磁线圈L1和L2,它们分别完成发射和接收工作。如上图所示,在L1的两端加上低频率的电压U1,此时线圈中就会流过一个同样低频的电流信号,同时也会产生一个交变磁场。在没有被测物的情况下,发射线圈就能将磁力线直接贯穿接受线圈,将接受线圈分出一个交变电势E,E的大小与电压、频率、匝数、组成、位置有关系,在所有参数确定法的情况下,E就能保持一个固定值,不会发生改变。但是,若L1和L2之间加入金属板,那么E的值就会发生改变,因为,金属板上产生的物理反应会消耗E的值。

      低频透射式电磁传感器是由两个线圈,就是发射线圈L和接收线圈L2。它们分别位于金属板的上下两侧,如图2.3所示。当施加低频电压U在 L1线圈中的交变电流,通过一个频率相同的线圈,就可以与线圈周围的空间将产生一个交变磁场。如果两线圈不测量金属板,可以直接通过L2 ,所以L2诱导交变电压E的大小与幅度U和频率f相关和L1、L2匝数,结构和相对位置,如果这些参数可以确定,然后也是一个恒定的价值。如果一个金属板被放置在两个线圈之间,然后在金属板中会产生涡流,能源消耗,达到了L2的磁力线减少,从而使感应电动势E降低。较厚的板,涡流损耗越大,和更多的价值,所以,板的厚度可以通过E值获得的。理论分析和实验证明:感应电动势E与板厚h为指数曲线的关系,其中e为自然对数的底,h是测定金属材料的厚度,H是涡流渗透深度,使接收线圈的感应电势E与根据指数下降法增加H。如图4所示。

                            图4 接收线圈感应电势与被测金属厚度的关系曲线

      对于同一种种材料,其电阻率ρ是确定值,由于选用不同的激磁频率,所以涡流贯穿深度h就会有所不同,从而也使E与H间的关系曲线形状发生变化。从图2.4中可知,频率越低,f3>f2>f1,磁通穿透能力强,在接受线圈上感应的电压也越高,频率越低时,线性较好,因此要求线性好时应选择较低的激励频率,h较小时,f3曲线的斜率较大,所以测薄板时应选较高的频率,而在测厚板时应选较低的频率。另外,当激磁频率一定时,不同材料的被测物体的电阻率不同,贯穿深度h的数值也不相同,这也将引起 H-E曲线的变化。因此可以根据感应电势E的幅值来测量不同金属材料的厚度。另一方面,当两线圈间没有被测金属板时,感应电势E 与激励电压U之间存在一个固定相位差φ,它的大小与U的相位、频率 f 以及 L1、L2的匝数、结构、相对位置有关,假如这些参数都能确定下来,那么φ也是一个恒定值。对于不同材料的导体,相位的改变有所差别。因此根据感应电势与激励电压的相位差进行材料的鉴别。

高频反射式传感器原理

      如前面所述,通有交变电流的传感器线圈靠近金属导体时,将引起金属导体表层的交变电涡流。在对传感器进行分析时,完全可以把电涡流路径的包络视为单匝线圈,此线圈也会有自己的阻抗特性,它可以用 Z = R+jωL表示,其中R的大小取决于电涡流路径的几何尺寸和金属导体的电阻率;L的大小则取决于电涡流路径的几何尺寸等[1]。在传感器附近引入金属导体后,可以用互感量M来表征传感器与金属导体的耦合松紧程度。这样,在传感器附近引入金属导体后,可以用图 2.5 所示的等效电路来分析传感器的阻抗特性。设R1和L1为传感器线圈的损耗电阻和电感,R2和L2为被测金属导体的等效损耗电阻和电感,U为线圈的激励电压,\omega为激励电压的角频率,M为传感器线圈与被测体间的互感量(此互感量随着传感器与被测体之间的距离d 的缩短而增大),电磁传感器的等效电路如图5所示

                        图5 电磁传感器的等效电路 

      传感器线圈外径大时,线圈的磁场轴向分布范围大,但磁感应强度的变化梯度小;线圈外经小时则相反。线圈外径大,线性范围就大,但灵敏度低;反之,线圈外径小,灵敏度高,但线性范围小。线圈内径和厚度的变化影响较小,仅在线圈与导体接近时灵敏度稍有变化。需要指出的是,由于电磁传感器是利用线圈与被测导体之间的电磁耦合进行工作的,因而被测导体作为实际传感器的一部分,其材料的物理性质、尺寸与形状都与传感器特性密切相关。被测导体的电导率、磁导率对传感器的灵敏度有影响。一般说,被测体的电导率越高,灵敏度也越高。磁导率则相反,当被测物为铁磁性时,灵敏度较非铁磁性低。而且被测体若有剩磁,将影响测量结果,因此应予消磁。当被测体环的直径为线圈直径的一半时,灵敏度将减小一半;更小时,灵敏度下降更严重,两者相等时,灵敏度降低为70%左右。在被测体厚度方面,一般厚度大于0.2mm 即不影响测量结果,铜铝等材料更可减薄为70um。被测硬币的厚度完全达到要求。

激光传感器

      激光传感器利用激光技术进行测量的传感器。它由激光器、激光检测器和测量电路组成。激光传感器是新型测量仪表,它的优点是能实现无接触远距离测量,速度快,精度高,量程大,抗光、电干扰能力强等。

      如果使硬币在通过检测管道时初速度固定, 以直径为测量长度, 那么硬币在管道中通过的时间是一定的,即在不考虑摩擦力的情况下, 硬币的直径距离与通过时间成平方关系。

硬币检测算法

 幅值检测法

      幅值检测法采用的是低频透射式电磁传感器原理,当在激励线圈两端加交变电压时,激励线圈周围会产生交变磁场,从而使感应线圈中产生感应电势E,当在两线圈中放入被测金属时,感应电势的大小会发生改变,感应电势的变化程度是跟金属的材质,厚度有关系。因此,通过检测感应电势E的大小可知被测金属的厚度。我国的硬币大小、厚度不一,所以在硬币检测中,可以使用低频透射式电磁传感器来检侧硬币的形状。

频率检测法

      由前面所述的电磁传感器的原理可知,被测金属的电导率能够通过高频反射式电磁传感器的输出参数z, z和Q进行测量。在此,为了进行硬币区分,根据我国不同面值硬币的材质存在差异的情况,利用高频反射式电磁传感器测量硬币的电导率从而对硬币进行材质鉴别。当硬币靠近线圈时,电感L将发生变化,则正弦波频率f也必将发生变化,即信号频率的变化反映了硬币的特征。使用频率测量法的优点是能够综合地反应出硬币的材质、直径、厚度以及纹理特征,并且电路简单,数据采集过程不需要经过模数转换环节,只需将正弦振荡波转换成方波,就可以提供给控制器进行相应的处理。由于不用经过模数转换,数据的采集过程产生的误差较小,单种硬币的检测结果具有较高的复现率。所以使用频率检测法是一种较好的硬币鉴别方案。

硬币识别系统设计

        通过电磁传感器和激光传感器来检测硬币的真伪和大小,当硬币通过投币入口进入特定高频振荡线路,产生变化的磁场,金属材质的不同和体积的不同对电感量的也会产生微弱的影响,电感量的变化会引起振荡频率的变化,再通过检测频率的变化,与设定值进行比较,确定某种硬币种类后,经窄带选频电路将频率信号变成电压信号输出,完成对金属硬币的识别。

小结:最近某省电赛出了道硬币检测的题,芯片要求华芯微特SWM181的,所以本文章内容只提供思路不提供电路和代码,仅供参考。

另外今天是1024程序员节,祝程序猿们节日快乐,头发茂盛,身体健康,永不加班(虽然不太现实)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于STM32硬币识别检测 的相关文章

  • 记一次PWN机(Vmware和Docker+VNC)的搭建

    基于Vmware搭建虚拟机 学长已经提供了镜像 xff0c 在Vmware界面打开那个镜像 xff0c 开机即可 Vmware和镜像下载地址 xff1a 链接 xff1a https pan quark cn s 057a23e631f5
  • vue.runtime.esm.js?2b0e:619 [Vue warn]: Invalid prop: type check failed for prop “index“. Expected S

    vue runtime esm js 2b0e 619 Vue warn Invalid prop type check failed for prop 34 index 34 Expected String with value 34 1
  • 解决vscode上边菜单栏不显示的问题

    由于我们不小心点击了哪个键 xff0c 导致上边的菜单栏不显示 两种解决方案 方法一 xff1a 点击下面的这个按钮 xff0c 会弹出一个弹框 点击一下菜单栏的可见性 xff0c 即可出来 方式二 xff1a 使用快捷键Ctrl 43 S
  • node+vue搜索和分页功能实现

    前端代码 lt template gt lt div class 61 34 main box 34 gt lt 卡片区 gt lt el card gt lt 搜索 gt lt el input placeholder 61 34 请输入
  • React面试题最全

    1 什么是虚拟DOM xff1f 虚拟DOM是真实DOM在内存中的表示 xff0c ul的表示形式保存在内存中 xff0c 并且与实际的DOM同步 xff0c 这是一个发生在渲染函数被调用和元素在屏幕上显示的步骤 xff0c 整个过程被称为
  • vue项目页面空白但不报错产生的原因分析

    vue项目中我们请求一个路由 xff0c 打开页面发现页面是空白的 xff0c 产生的主要原因有四种 xff1a 1 路由重复 如果配置了两个路由是重复的 xff0c 比如配置了两个 path xff0c 那么访问就会看到空白页面 xff0
  • react--电商商品列表使用

    目录 整体页面效果 项目技术点 拦截器的配置 主页面 添加商品 分页 xff0c 搜索 修改商品 删除商品 完整代码 整体页面效果 项目技术点 antd组件库 xff0c 64 ant design icons antd的图标库axios
  • 服务器端升级或者切换node版本

    1 查看版本 nvm list 2 选择你需要的版本 nvm use v18 15 0
  • lodash防抖节流

    应用场景 xff1a 当用户高频率的触发事件 xff0c 事件较短 xff0c 内部出现卡顿现象 解决方法 xff1a 防抖节流 防抖节流功作用 xff1a 主要目的是为了降低高频事件触发 xff0c 减少dom操作或请求次数 xff0c
  • 使用webpack(4版本)搭建vue2项目

    在学习webpack之前 xff0c 也从网上搜过一些用webpack搭建vue项目的博客 xff0c 但是在自己使用的时候会报各种的问题 xff0c 报错的根本原因其实就是版本的问题 xff0c 以下代码是经过解决了许多报错问题研究出来最
  • VUE调用摄像头PC

    页面效果 实现代码 lt template gt lt div id 61 34 app 34 gt lt router view gt lt 开启摄像头 gt lt Button type 61 34 primary 34 64 clic
  • koa2的脚手架koa-generator使用

    我们在搭建项目的时候 xff0c 会使用一些脚手架 xff0c 今天我们使用koa2的脚手架koa generator 使用非常简单 首先 xff0c 我们需要全局安装 npm install g koa generator 创建项目 ko
  • css行内元素、块元素、行内块元素的区别

    行内元素的特点 xff1a 1 和其他元素在一行显示 2 元素的宽度 高度 行高及底部边距不可编辑 3 元素的宽度就是它包含的文字或图片的宽度 xff0c 不可改变 4 行内元素只能容纳纯文本或者是其他的行内元素 xff08 a标签除外 x
  • STM32CubeMX安装

    一 STM32CubeMX下载 官网地址 xff1a STM32CubeMX STM32Cube初始化代码生成器 意法半导体STMicroelectronics 官网下载需要注册账号 网盘链接 xff08 6 8 xff09 xff1a 链
  • 关于汇编指令sar右移32位的情况,记录一下

    网上 对sar指令右移超过31位的情况 比如右移32位 右移33位 很少有详细的说明 为了防止下一次还有像我这样傻x的人不会 我就记录一下 我不会过多说基础 基础了解就行 xff0c 能懒就懒 1字节 sar 我们以一字节为例子 00412
  • vs2022 汇编环境配置,xxx.inc头文件找不到,出现报错,不影响正常代码生成的解决方案

    解决方案前提 1 你的include和lib路径已经配置好了 然后代码可以正常的生成一个exe 2 安装了的AsmDube 其实inc文件找不到 是AsmDub找不到 不是vs2022找不到 所以你就去AsmDube修改一下 所以你只需要告
  • 关于8皇后解决方法的浅析

    关于8皇后解决方法的浅析 众所周知 xff0c 解决8皇后最普遍的方法是回溯法 那具体是怎么样的呢 xff1f 大概思路 xff1a 定义一个int型数组queen xff0c 角标 1 2 7 代表皇后所在的行 xff0c 值代表皇后所在
  • Latex闲谈

    关于latex呢 xff0c 首先它是一个排版工具 xff0c 是一个将文章排版和文章内容分开的一个排版工具 有个问题是你是边写边排版呢还是用word写完之后再来说是进行这个排版呢 xff0c 对于我而言 xff0c 我更倾向于后者 xff
  • Linux下phpmyadmin忘记root的登录密码,找回方法

    第一步 xff1a 执行 etc init d mysql stop 结束当前正在运行的mysql进程 第二步 xff1a 执行 usr bin mysqld safe skip grant tables 用mysql安全模式运行并跳过权限
  • matlab郭彦甫-听课笔记-02

    可以分块 xff0c 分块之后可以进行分块执行run section 关系运算符 xff1a 61 不等于 取余函数 xff1a mod a b rem a b switch case case case otherwise 连乘函数 xf

随机推荐

  • 51单片机硬件介绍

    1 单片机是啥 单片机 xff0c 简称MCU xff0c 是微型计算机 xff0c 集成了一部计算机许多硬件功能 xff0c 有CPU 存储器 xff08 ROM RAM xff09 等 2 有了这样一个单片机芯片后 xff0c 怎么将程
  • matlab硬件支持包离线安装-(安装文件夹错误)

    dSupport Software Downloader MATLAB amp Simulinkhttps ww2 mathworks cn support install support software downloader html
  • 小结:卸载SolidWorks2018->重新安装系统->安装SolidWorks2020

    因为卸载SW2018卸载不干净 xff0c 所以在安装SW20版一直在出错 xff0c 错误如下 xff1a 这个错误解决后继续安装 xff0c 又发现没有出现原本序列号的那一界面 xff0c 然后还有异型孔向导安装不了 xff0c 最后还
  • FreeRTOS信号量 基于STM32

    目录 概述 一 信号量基本概念 1 二值信号量 2 计数信号量 3 互斥信号量 4 递归信号量 二 二值信号量运作机制 三 计数信号量运作机制 四 常用信号量函数接口讲解 1 创建二值信号量 xSemaphoreCreateBinary 2
  • FreeRTOS互斥量 基于STM32

    文章目录 一 互斥量基本概念 二 互斥量的优先级继承机制 三 互斥量应用场景 四 互斥量运作机制 五 互斥量函数接口讲解 1 互斥量创建函数 xSemaphoreCreateMutex 2 递归xSemaphoreCreateRecursi
  • FreeRTOS事件组 基于STM32

    概述 文章对事件组的 xff0c 应用场景 xff0c 运作机制 xff0c 以及事件的创建 xff0c 删除 xff0c 等待 xff0c 置位 xff0c 同步等操作 文章目录 概述 一 事件标志组简介 1 事件位 事件标志 2 事件组
  • FreeRTOS任务通知 基于STM32

    文章目录 一 任务通知简介 二 任务通知的运作机制 三 任务通知的函数接口讲解 1 xTaskGenericNotify 2 xTaskNotifyGive 3 vTaskNotifyGiveFromISR 4 xTaskNotify 5
  • FreeRTOS软件定时器 基于STM32

    文章目录 一 软件定时器的基本概念 二 软件定时器应用场景 三 软件定时器的精度 四 软件定时器的运作机制 五 软件定时器函数接口讲解 1 软件定时器创建函数 xTimerCreate 2 软件定时器启动函数 xTimerStart 3 软
  • FreeRTOS内存管理 基于STM32

    目录 一 内存管理的基本概念 二 内存管理的应用场景 三 heap 4 c 1 内存申请函数 pvPortMalloc 2 内存释放函数 vPortFree 四 内存管理的实验 五 内存管理的实验现象 一 内存管理的基本概念 在计算系统中
  • 关于ECSHOP模板架设的服务器php版本过高报错的解决方法集合

    1 admin index php admin sms url php ECSHOP模板 报错 xff1a Strict Standards mktime You should be using the time function inst
  • FreeRTOS中断管理 基于STM32

    文章目录 一 异常与中断的基本概念 二 中断的介绍 三 和中断相关的名词解释 四 中断管理的运作机制 五 中断延迟的概念 六 中断管理的应用场景 七 中断管理讲解 八 中断管理实验 九 中断管理实验现象 一 异常与中断的基本概念 异常是导致
  • 链表基础知识详解(非常详细简单易懂)

    概述 xff1a 链表作为 C 语言中一种基础的数据结构 xff0c 在平时写程序的时候用的并不多 xff0c 但在操作系统里面使用的非常多 不管是RTOS还是Linux等使用非常广泛 xff0c 所以必须要搞懂链表 xff0c 链表分为单
  • FreeRTOS临界段的保护

    什么是临界段 临界段用一句话概括就是一段在执行的时候不能被中断的代码段 在 FreeRTOS 里面 xff0c 这个临界段最常出现的就是对全局变量的操作 xff0c 全局变量就好像是一个枪把子 xff0c 谁都可以 对他开枪 xff0c 但
  • SPI通讯协议详解 基于STM32

    SPI 协议简介 SPI 协议是由摩托罗拉公司提出的通讯协议 Serial Peripheral Interface xff0c 即串行外围设备接口 xff0c 是 一种高速全双工的通信总线 它被广泛地使用在 ADC LCD 等设备与 MC
  • C语言编译过程

    C语言的编译过程 xff1a 预处理 编译 汇编 链接 gcc E hello c o hello i 1 预处理 gcc S hello i o hello s 2 编译 gcc c hello s o hello o 3 汇编 gcc
  • C语言数组详解

    目录 一 数组的概念 二 数组的分类 2 1 按元素的类型分类 2 2 按维数分类 三 数组的定义 3 1 一维数组的定义 格式 xff1a 3 2 二维数组的定义 四 定义并初始化 4 1 一维数组的初始化 4 2 二维数组的初始化 五
  • C语言动态分配内存

    文章目录 一 动态分配内存的概述 二 静态分配 动态分配 三 动态分配函数 3 1 malloc 3 2 free 3 3 calloc 3 4 realloc 四 内存泄漏 一 动态分配内存的概述 在数组一章中 xff0c 介绍过数组的长
  • 嵌入式C语言(入门必看)

    目录 STM32的数据类型 const关键字 static 关键字 volatile关键字 extern关键字 struct结构体 enum typedef define 回调函数 ifdef ifndef else if 嵌入式开发中既有
  • ESP32上手指南

    乐鑫的ESP32微控制器是一款集成有2 4 GHz Wi Fi和蓝牙4 0双模的物联网芯片方案 xff0c 采用台积电 TSMC 超低功耗的40纳米工艺代工 片上集成有天线开关 射频巴伦 功率放大器 接收低噪声放大器 滤波器 电源管理模块等
  • 基于STM32硬币识别检测

    本设计基于ARM内核的单片机STM32F4的高识别率硬币识别装置 xff0c 主要应用于各公共营业场所 xff0c 如各超市 xff0c 自动售货机 xff0c 公共交通等 它应该能完成一角 xff08 分新版旧版 xff09 xff0c