单片机技术网|技术阅读
登录|注册

您现在的位置是:单片机技术网 > 技术阅读

技术阅读

  • 在节能方面C语言当然是第一名

    2024-06-30

    在嵌入式领域C语言那是一直占据着主导低位,原因肯定也是多方面的,对于能耗问题在嵌入式软件开发中是经常需要考量的问题,所以C语言肯定是成绩不错的。相关内容主要来源于一篇论文:《Energy Efficiency across Programming Languages (uminho.pt)》感兴趣的朋友点击右下角阅读原文即可找到pdf。该文档主要分析和比较了27种流行的软件语言的能效,并从10个不同的基准测试问题中展示哪些是最节能的软件语言。如下是通过能量、时间和内存的标准化以后的总结果:通过测量执行时间和内存使用率等,将这两者与能耗联系起来,不仅了解到内存使用如何影响能...

  • 嵌入式循环队列、软件定时器、事件集工具包 ToolKit,文末库地址

    2024-06-29

    1 介绍ToolKit 是一套应用于嵌入式系统的通用工具包,可灵活应用到有无RTOS的程序中,采用C语言面向对象的思路实现各个功能,尽可能最大化的复用代码,工具包目前为止包含:循环队列、软件定时器、事件集。• Queue 循环队列支持动态、静态方式进行队列的创建与删除。可独立配置缓冲区大小。支持数据最新保持功能,当配置此模式并且缓冲区已满,若有新的数据存入,将会移除最早数据,并保持缓冲区已满。• Timer 软件定时器支持动态、静态方式进行定时器的创建与删除。支持循环、单次模式。可配置有无超时回调函数。可配置定时器工作在周期或间...

  • 机器人运动背后的机械原理

    2024-06-29

    很多司已经研制出了性能非常优越的机器人产品。比如,谷歌的“大狗”、会后空翻的机器人和波士顿“小汪”。这些机器人动作那么敏捷,被网友称赞“帅爆了!”机器人控制技术很复杂,不过其中的机械原理其实相对比较简单,大部分都是一些连杆机构。连杆,指的是定长线段与定长线段顶点重合所构成的结构。1.平行四杆机构一种结构简单,低成本,传输可靠性高的平行四杆机构,是一种铰链四杆机构,构件呈平行四边形,能稳定可靠地进行水平移送。怎么最后快变成车轮子了!2.切比雪夫连杆机构如下运动简图,由静止节、原动节、从动节、中间节和延长中间节组成...

  • 嵌入式开发中的程序架构

    2024-06-29

    前言    在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。    软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,并且便于开发。    我相信在嵌入式或单片机软件开发的初期大多数开发者采用的都是简单的前后台顺序执行架构(我就是这样的)。在嵌入式软件开发中,程序架构主要分为三种,本篇文章将对这三种程序架构做出详解。软件架构存在的意义    可以说一个好的程序架构,是一个有经验的工程师和一个初学者的分水岭。软件架构对于开发人员是友好的,你希望...

  • 动画演示单片机是如何跑程序的

    2024-06-29

  • 三极管滤波是个什么鬼?TA不止会放大哦~

    2024-06-29

    ????????

  • 数据结构面试中的二叉树操作

    2024-06-29

    在数据结构面试环节中,二叉树是必考的模块。本文主要讲二叉树操作的相关知识,梳理面试常考的内容。一起来复习吧。本篇针对面试中常见的二叉树操作作个总结:前序遍历,中序遍历,后序遍历;层次遍历;求树的结点数;求树的叶子数;求树的深度;求二叉树第k层的结点个数;判断两棵二叉树是否结构相同;求二叉树的镜像;求两个结点的最低公共祖先结点;求任意两结点距离;找出二叉树中某个结点的所有祖先结点;不使用递归和栈遍历二叉树;二叉树前序中序推后序;判断二叉树是不是完全二叉树;判断是否是二叉查找树的后序遍历结果;给定一个二叉查找...

  • 在嵌入式中解析JSON数据,CSON+CJSON

    2024-06-29

    前言json是目前最为流行的文本数据传输格式,特别是在网络通信上广泛应用,随着物联网的兴起,在嵌入式设备上,也需要开始使用json进行数据传输,那么,如何快速简洁地用C语言进行json的序列化和反序列化呢?当前,应用最广泛的C语言json解析库当属cJSON,但是,使用cJSON读json进行序列化和反序列化,需要根据key一个一个进行处理,会导致代码冗余,逻辑性不强,哪有没有更好的方法呢?思路在Android平台,一般会使用gson等工具解析json,这些工具将json直接映射成对象,在C语言上使用对象的概念,我们需要借助结构体,然而,最大的问题在于,C语言...

  • 讲解UART、I2C、SPI串口通信

    2024-06-29

        电子设备之间的通信就像人类之间的交流,双方都需要说相同的语言。在电子产品中,这些语言称为通信协议。    之前有单独地分享了SPI、UART、I2C通信的文章,这篇对它们做一些对比。串行 VS 并行    电子设备通过发送数据位从而实现相互交谈。位是二进制的,只能是1或0。通过电压的快速变化,位从一个设备传输到另一个设备。在以5V工作的系统中,“0”通过0V的短脉冲进行通信,而“1”通过5V的短脉冲进行通信。     数据位可以通过并行或串行的形式进行传输。另外也可以通过此视频了解:。在并行通信中,数据位在导线上同时传输。...

  • 温习:C语言三个重点知识

    2024-06-29

        C语言在嵌入式学习中是必备的知识,审核大部分操作都要围绕C语言进行,而其中有三块“难啃的硬骨头”几乎是公认级别的。1 指针    指针公认最难理解的概念,也是让很多初学者选择放弃的直接原因。    指针之所以难理解,因为指针本身就是一个变量,是一个非常特殊的变量,专门存放地址的变量,这个地址需要给申请空间才能装东西,而且因为是个变量可以中间赋值,这么一倒腾很多人就开始犯晕了,绕不开弯了。C语言之所以被很多高手所喜欢,就是指针的魅力,中间可以灵活的切换,执行效率超高,这点也是让小白晕菜的地方。    指针...

  • 常见滤波电路分析技巧

    2024-06-29

        在整流电路输出的电压是单向脉动性电压,不能直接给电子电路使用。所以要对输出的电压进行滤波, 消除电压中的交流成分,成为直流电后给电子电路使用。在滤波电路中,主要使用对交流电有特殊阻抗特性的器件,如:电容器、电感器。本文对其各种形式的滤波电路进行分析。滤波电路种类    滤波电路主要有下列几种:电容滤波电路,这是最基本的滤波电路;π 型 RC 滤波电路;π 型 LC 滤波电路;电子滤波器电路。滤波原理单向脉动性直流电压的特点    如下图所示。是单向脉动性直流电压波形,从图中可以看出,电压的方向性无论在何时都...

  • 拆解体脂秤,学习其内部电路

    2024-06-29

        家里有一款体脂秤2显示OL,称不出重量,也测不出体脂了,今天空了维修一下,也给小伙伴们看看,出现在这个问题的处理方法:    出现这个问题一般表示超重了,我们考虑一下:都没有任何被测物怎么可能超重了,觉得是传感器损坏了,随即找来工具拆开一探究竟,这款整理采用卡扣(无螺丝结构),在四个边角撬一下便可很容易打开:    拆开后整个内部结构一览无余,先研究一下,后边再修:    1、MCU使用带蓝牙的MCU,控制测量数据,存储数据,并负责传输到手机;    2、一个高精度的ADC,将4个电极与4个半桥传感器合并为2个全桥后...

  • QP状态机框架与常见状态机方法 | 长文收藏

    2024-06-29

    状态机基本术语    现态:是指当前所处的状态。条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。    动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。传统有限状态机Fsm实现方法    如图,是一个定时计数器,计数器存在两种状态,一种为设置状态,一种为计时状态...

  • 硬件工程师的崩溃瞬间-横屏

    2024-06-28

  • CAN总线详解

    2024-06-28

    1 简介    CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现分布式实时控制的串行通信网络。优点:    传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。近些年来,CAN控制器价格越来越低。Ø 低成本:ECUs通过单个CAN接口进行通信,布线成本低。Ø 高集成:CAN总线系统允许在所有ECUs上进行集中错误诊断和配置。Ø 可靠性:该系统对子系统的故障和电磁干扰具有很强的鲁棒性,是汽车控制系统的理想选择。Ø 高效率:可以通过id对消息进行优先级排序,以便最高优先级的id不被中断。Ø 灵活性:...

  • 单片机的队列功能模块QueueForMcu

    2024-06-28

        基于单片机实现的队列功能模块,主要用于8位、16位、32位非运行RTOS的单片机应用,兼容大多数单片机平台。    开源代码:https://github.com/xiaoxinpro/QueueForMcu一、特性动态创建队列对象动态设置队列数据缓冲区静态指定队列元素数据长度采用值传递的方式保存队列数据二、快速使用#include "queue.h"#define Q_UART_BUFFER_SIZE 1024QUEUE_HandleTypeDef qUartTx;QUEUE_DATA_T BufferUartTx[Q_UART_BUFFER_SIZE];int main(void){ QUEUE_DATA_T temp; //初始化队列 Queue_Init(&qUartTx, BufferUartTx, Q_UART_BUFFER_SIZE); ...

  • Linux下嵌入式开发学习建议

    2024-06-28

        说到在嵌入式Linux的平台上设计算法,目的无非是2个,一是Linux,这东西无孔不入,可以塞到各种板子上。二是算法代码执行的效率,嵌入式的平台不像是PC各种资源还是比较紧张,所以代码效率还是个要考虑的事情。所以,对于这个事情要从2方面考虑,一是熟悉Linux下面的软件开发过程,二是知道如何编写高效率的代码,比如C程序。    首先是Linux平台的熟悉,现在的嵌入式Linux系统开发过程中,由于系统日益复杂,各种人员的分工变得愈加清晰,首先是,硬件工程师和驱动工程师们,或者开发板的供应商们,会把平台给封装成“貌似”一台安装了...

  • 盘点那些嵌入式工程师的工位

    2024-06-28

    先看看程序员的工位最最常见的普通版:升级版:算不得体贴版:升级体贴版:舒适版:“土拨鼠”版:独立版:高级版:友谊版:高级程序员版:干净的其他普通版:一位程序员的暑期办公室:再看一下大佬的工位!↓↓↓扎克·伯格:史蒂夫·乔布斯:比尔·盖茨:史蒂夫·鲍尔默:杰夫·贝佐斯:马克斯·莱文奇恩:迈克尔·戴尔:再看看搞硬件大佬的工位,先看比较整洁的下面几个工位比较具有代表性你以为这样就已经让你接受不了了?那你看看下面硬件大神级的工位吧

  • 防反接常用单元电路,收藏了

    2024-06-28

        对于平常日用的一些产品,产品在进行设计时就会考虑这个问题,顾客只是简单的利用插头进行电源的连接,所以一般采用反插错接头,这是种简单,低价而有效的方法。    但是,对于产品处于工厂生产阶段,可能不便采用防差错接头,这可能就会造成由于生产人员的疏忽造成反接,带来损失。所以给电路增加防接反电路有时还是有必要的,尽管增加了成本。    下面就说说常用的防反接电路:01    最简单的在电路中串入一只二极管优点:    电路简单,成本较低。适用于小电流,对成本要求比较严的产品。缺点:    由于二极管的PN结...

  • 最强总结:27个模拟电路基础知识!

    2024-06-28

    01基尔霍夫定理的内容是什么?基尔霍夫电流定律:在电路任一节点,流入、流出该节点电流的代数和为零。基尔霍夫电压定律:在电路中的任一闭合电路,电压的代数和为零。02戴维南定理一个含独立源、线性电阻和受控源的二端电路 ,对其两个端子来说都可等效为一个理想电压源串联内阻的模型。其理想电压源的数值为有源二端电路的两个端子的开路电压 ,串联的内阻为 内部所有独立源等于零时两端子间的等效电阻 。03三极管曲线特性04反馈电路的概念及应用反馈,就是在电子系统中,把放大电路中的输出量(电流或电压)的一部分或全部,通过一定形式的反馈取...

  • STM32通过PWM控制电机速度

    2024-06-28

        做STM32智能小车的实验中会用到定时器PWM输出,来改变直流电机的转速。分享本文了解如何通过PWM实现对电机速度的控制。。   上图中的ARR是我们给定时器的一个预装载值,CCRx的上下变化是产生PWM波的关键。我们假设ARR大于CCRx的部分输出为高电平(即t1-t2、t3-t4、t5-t6),ARR小于CCRx的部分输出为低电平(即0-t1、t2-t3、t4-t5),则改变CCRx的值就能改变输出PWM的占空比。因此,想要控制PWM的输出波形,重要的就是如何设置ARR与CCRx这两个寄存器的值了。STM32定时器中断    为了便于理解接下来关于PWM应用的内容,先插一段定时器中...

  • 简单地了解一些计算机基础知识

    2024-06-28

    为解决各种问题,人们发明了不计其数的机器。计算机种类繁多,从嵌入火星漫游机器人的计算机到为操纵核潜艇导航系统的计算机,不一而足。冯• 诺伊曼在1945 年提出第一种计算模型,无论笔记本电脑还是电话,几乎所有计算机都遵循与这种模型相同的工作原理。那么你们了解计算机是如何工作的吗?本文将讨论这些内容:理解计算机体系结构的基础知识选择编译器将代码转换为计算机可以执行的指令根据存储器层次结构提高数据的存储速度毕竟,在非程序员看来,编程要像魔法一样神奇,我们程序员不会这么看。体系结构 计算机是一种根据指令操作数据的机器,...

  • C语言指针的全面总结

    2024-06-28

        本文从底层内存分析,彻底让读者明白C语言指针的本质。指针变量    首先读者要明白指针是一个变量,为此作者写了如下代码来验证之:#include "stdio.h"int main(int argc, char **argv){ unsigned int a = 10; unsigned int *p = NULL; p = &a; printf("&a=%d\n",a); printf("&a=%d\n",&a); *p = 20; printf("a=%d\n",a); return 0;}    运行后可以看到a的值被更改了,上面的例子可以清楚的明白指针实质上是一个放置变量地址的特殊变量,其本质仍然是变量。    既然指针是变量,那必然会有变量类型,因...

  • 给电子类大学生一点求职建议

    2024-06-28

    前言    读大学的时候应该想清楚以后要干嘛,不然很可能要面对毕业即失业的窘境。每年近千万毕业生涌向社会,这个数字多少会给你点压力吧。    因为我是专业对口的,所以我就从对口的角度,说下我们电子信息类专业学的啥以及怎么学。有很多人在问专业难度,以及哪些课需要读好认真学等,其实这些需要看你的心有多大,才能决定你要走多远。决定搞科研还是搞技术?    另外,电子信息的专业难度只要智商没问题其实一般都学的来,男女都一样,至少学到就业水平是没问题的,所以别问我什么对女生是不是不友好,女生是不是学不来,我只能说那...

  • 吃透这八大基础电路,模拟电路分析就不难啦!

    2024-06-28

    在电子电路中,电源、放大、振荡和调制电路被称为模拟电子电路,因为它们加工和处理的是连续变化的模拟信号。1反馈反馈是指把输出的变化通过某种方式送到输入端,作为输入的一部分。如果送回部分和原来的输入部分是相减的,就是负反馈。2耦合一个放大器通常有好几级,级与级之间的联系就称为耦合。放大器的级间耦合方式有三种:①RC 耦合(见图a): 优点是简单、成本低。但性能不是最佳。② 变压器耦合(见图b):优点是阻抗匹配好、输出功率和效率高,但变压器制作比较麻烦。③ 直接耦合(见图c): 优点是频带宽,可作直流放大器使用,但前后级工作有牵制...

  • 电容在复位电路中的作用

    2024-06-27

    什么是复位    单片机复位电路的作用是:使单片机恢复到起始状态,让单片机的程序从头开始执行,运行时钟处于稳定状态、各种寄存器、端口处于初始化状态等等。目的是让单片机能够稳定、正确的从头开始执行程序。为什么要加复位?    数字电路中寄存器和 RAM 在上电之后默认的状态和数据是不确定的,如果有复位,我们可以把寄存器复位到初始状态,RAM 的数据可以通过复位来触发 RAM 初始化程序逻辑如果进入了错误的状态,通过复位可以把所有的逻辑状态恢复到初始值,如果没有复位,那么逻辑可能永远运行在错误的状态。    一些简单的IC芯...

  • Proteus仿真:交流变直流电路原理

    2024-06-27

  • 点亮了一个电阻

    2024-06-27

  • STM32的半主机机制

    2024-06-27

    半主机机制的作用    半主机是用于ARM目标的一种机制,可将来自STM32单片机应用程序的输入输出请求传送至运行仿真器的PC主机。使用此机制可以启用C库中的函数,如printf()和scanf(),来使用PC主机的屏幕和键盘。这样就可以看到单片机的输入输出,方便进行调试。注意:这种机制的运行需要仿真器,否则无法运行。    简单的来说,半主机模式就是通过仿真器实现开发板在电脑上的输入和输出。     开发时单片机需要独立运行,开发者就应该去掉仿真器,把printf函数通过单片机的外设来实现,例如通过开发板的串口。非半主机机制下printf函数...

  • AD采样用了这么久,是时候熟悉一下内部结构了

    2024-06-27

    前言    用了这么久ADC,从没细看过ADC的内部原理和如何获得最佳精度,今天看到一篇ST的官方文档讲的不错,这里整理分享给大家。SAR ADC内部结构    STM32微控制器中内置的ADC使用SAR(逐次逼近)原则,分多步执行转换。转换步骤数等 于ADC转换器中的位数。每个步骤均由ADC时钟驱动。每个ADC时钟从结果到输出产生一 位。ADC的内部设计基于切换电容技术。    下图介绍了ADC的工作原理。下面的示例仅显示了逼近的前面几步,但是该过程会持续到LSB为止。    SAR切换电容ADC的基本原理(10位ADC示例),带数字输出的ADC基本原理图如下。采...