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

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

技术阅读

  • 编写可移植性强的C/C++程序

    2024-07-10

    以前做过两年 C++ 程序移植工作,从 Win32 平台移植到 Linux 平台。大约有上百万行 C/C++代码,历时一年多。在开发 Win32 版本时,已经强调了程序的可植性,无奈 Win32 团队里对 Linux 精通的人比较少,很多问题没有想到,直到后来移植工作开始时,才发现移植并非像想的那样简单。后来,我发现大家对移植工程师都比较轻视,不管是从工资待遇还是管理层的态度来看都是这样。他们往往认为,你们不过是把别人实现好的东西移植过去罢了,你老老实实,按步就班去做就行了,根本不需要丝毫创意。事实并非如此,特别是对于大项目,其中遇到的问题和困难可谓...

  • 分析GPIO的推挽输出和开漏输出

    2024-07-10

    推挽输出:可以输出高,低电平,连接数字器件。 输出 0 时,N-MOS 导通,P-MOS 高阻,输出0。 输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。开漏输出:输出端相当于三极管的集电极。 要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。 输出 1 时,N-MOS 高阻, P-MOS 不被激活,输出1(需要外部上拉电路);可以读IO输入电平变化,此模式可以把端口作为双向IO使用。推挽电路: 上面的三极管是N型三极管,下面的三极管是P型...

  • 如何使用30个Mos管和小型变压器制做2000W逆变器

    2024-07-10

  • CAN总线详解

    2024-07-10

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

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

    2024-07-09

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

  • 无刷直流电机的基本工作原理

    2024-07-09

        分享下这篇不错的文章,了解下STM32单片机开发时常见的无刷直流电机。无刷直流电机简介    无刷直流电机,英语缩写为BLDC(Brushless Direct Current Motor)。电机的定子是线圈,或者叫绕组。转子是永磁体,就是磁铁 。根据转子的位置,利用单片机来控制每个线圈的通电,使线圈产生的磁场变化,从而不断在前面勾引转子让转子转动,这就是无刷直流电机的转动原理。下面深入一下。无刷直流电机的结构    首先先从最基本的线圈说起。如下图。可以将线圈理解成长得像弹簧一样的东西。根据初中学过的右手螺旋法则可知,当电流从该线圈的...

  • 常见滤波电路分析技巧

    2024-07-09

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

  • STM32串口通信简明知识

    2024-07-09

    1 什么是串口通讯?    串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。    典型的串口通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,所以端口能够在一根线上发送数据同时在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶的校验。对于两个需要进行串口通信的端口,这些参数必须匹配,这也是能够实现串口通讯的前提。如下是串行通讯示数据传输意图。2 串...

  • 详解20个工程师需要掌握的模拟电路

    2024-07-09

    桥式整流电路    二极管的单向导电性:二极管的PN结加正向电压,处于导通状态;加反向电压,处于截止状态。其伏安特性曲线,如下图。    理想开关模型和恒压降模型:理想模型指的是在二极管正向偏置时,其管压降为0,而当其反向偏置时,认为它的电阻为无穷大,电流为零,就是截止。恒压降模型是说当二极管导通以后,其管压降为恒定值,硅管为0.7V,锗管0.5V。    桥式整流电流流向过程:当u2是正半周期时,二极管Vd1和Vd2导通;而二极管Vd3和Vd4截止,负载RL的电流是自上而下流过负载,负载上得到了与u2正半周期相同的电压。在u2的负半...

  • STM32的GPIO电路原理

    2024-07-09

        GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。    STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。    STM32的大部分引脚除了当GPIO使用之外,还可以复用为外设功能引脚,比如串口。相关文章:。GPIO基本结构    每个GPIO内部都有这样的一个电...

  • CAN总线错误分析与解决

    2024-07-09

    本文从实际工作中碰到的具体问题来分析一些常见的CAN总线错误和解决办法。CAN节点数据收发过程我们知道,CAN总线上的每个节点往总线上发送数据的同时,会读取总线上的数据,并与自己发送的数据作对比。CAN信息发送成功后,在这个间隙内,接收节点可以准备要回复的信息,也就是把应答场填充为显性0,在发送时其为隐性1。应答过程可能如下:当信息传输到ACK前的Del时,可以认为信息已经传输完毕,接收节点也接收到了足够的信息来检测接收的信息是否正确。这时接收节点就会检测信号是否正确,如果正确,就将ACK置位为显性0,注意这时,发送节点因为还在...

  • 硬件设计中的坑

    2024-07-09

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

    2024-07-09

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

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

    2024-07-09

    ????????

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

    2024-07-09

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

  • STM32指针抽象出I2C的数据实例,附代码

    2024-07-09

    1.写在前面I2C总线是由PHILIPS公司开发的一种简单、「双向二线制同步串行总线」。关于i2c的使用,并不陌生,STM32、C51、ARM、MSP430等,都基本集成硬件i2c,或者不集成i2c的,可以根据总线时序图使用普通IO口翻转模拟一根i2c总线。对于流行的STM32饱受诟病的硬件I2C,相信很多人都是使用模拟I2C。模拟i2c的源码比较多,大多都是大同小异,对于各类例程,提供的模拟i2c似乎都不是太规范(个人见解),特别是一根i2c总线挂多个外设、模拟多根i2c总线、以及更换一个i2c外设时,都需要大幅度修改源码、复制源码、重新调试时序等重复的工作。在阅读过Lin...

  • 深入了解MOSFET的工作原理

    2024-07-08

  • 让代码中包含最新的编译时间信息

    2024-07-08

    如何保证发布出去的bin文件是最终测试通过的版本?一般的来讲,代码到了测试后期,master分支就不会频繁的提交了,并且提交也会更加谨慎。但是人为操作总会出现纰漏,希望只要代码被重新编译过,那么bin文件就包含新的时间信息,而这个信息是可以从外部通信或printf来查看的。在嵌入式开发中,版本号一般的都是一个int变量或字符串变量。但是若修改了代码而没有改version变量或宏定义,那么从version上就看不出来文件的变化。那么最终编译的版本到底是哪个版本,是否与测试的版本完全一致,这个问题尤为突出。目标文件中带有编译时间可以防止代码被...

  • 电路中的爱情与人生故事

    2024-07-08

    1 二极管篇    (1)暗恋就像根二极管,总是单向的电流。除非你运气好,表白时二极管反向击穿了,否则你就一直这样毫无回报的付出吧,别抱怨,谁让你选二极管呢。    (2)爱情里的背叛就像用来消除交越失真的那根二极管,刚知道时你怎么也想不明白为什么是那个人抢了你爱人,可是后来才明白,原来交流和直流是不一样的,所以,无论男人女人,在结婚以前,都别把你想托付一生的那个人介绍给你最好的哥们姐们,因为往往最后,问题就出在这里。2 三极管篇    (1)三角恋就像三极管,总能把电路搞的不一样,三角恋也会把生活变得热闹,...

  • 自制无刷电机控制器,牛啊

    2024-07-08

        很早之前就想做一款无刷电机控制器,忙于工作一直没有弄。最近有点时间画板,打样,焊接,调试,总算顺利的转起来。期间也遇到很多问题,上网查资料,自己量波形前前后后搞了差不多近一个月,(中间又出差一周)总算搞的差不多了,特意写个总结。    板子外观100*60mm 中等大小。DC 12V输入,设计最大电流10A.(实际没试过那么大的电机,手头的电机也就5 6A的样子)硬件上可以切换有感(HALL)和无感(EMF)两种模式,外部滑动变阻器调速 预留有 PWM输入、刹车、正反转、USB和uart等接口。    先来说下原理无刷电机其实就是直流电机,...

  • 详解STM32最小系统电路

    2024-07-08

    STM32最小系统硬件组成    最小系统为单片机工作的最低要求,不含外设控制,原理简单,分析最小系统是STM32入门的基础。时钟     晶振的作用是为最小系统提供最基本的时钟信号,电容的作用是保证晶振输出的震荡频率更加稳定。           BOOT启动电路    STM32 芯片的 BOOT0 和 BOOT1 引脚,可使用跳线帽设置它们的电平从而控制芯片的启动方式,它支持从内部 FLASH 启动、系统存储器启动以及内部 SRAM 启动方式。相关文章:。    一般使用JTAG或者SWD调试下载程序,会下载到闪存里,所以可以直接将BOOT0引脚和BOOT1引脚置为低...

  • 搞硬件的跟谁都有仇

    2024-07-08

    总体 vs. 硬件PCB:“尼玛,你又要改方案?兄弟我才把器件布局好。”总体:“原来的方案真的要变,考虑到散热,需要改封装。你现在的布局需要修改啊!”PCB:“这板子根本布局放不下去!”总体:“我自己放过了,可以的。”PCB:“你考虑过走线吗?这么布线需要多层板,要埋盲孔。”总体:“不能使用多层板,要考虑到成本。现在做板子的钱还不能够报销。”PCB:“You Can You Up, No Can No BB.”总体:“你不服,咋地?”机械结构 vs. 硬件结构:"如果车模上的结构可以随意变大,我难道不会给你搞个足够大的吗?"PCB:"如果电路元器件都像搭积木一...

  • STM32基于onewire单总线的数据抽象实例

    2024-07-08

    1.前言onewire(单总线) 是DALLAS公司推出的外围串行扩展总线技术总线,顾名思义,它是采用一根信号线进行通信,既传输时钟信号又传输数据,而且能够进行双向通信,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。常用到单总线的器件,一般是温度传感器、EEPROM、唯一序列号芯片等,如DS18B20、DS2431。在使用单总线时,往往很少CPU会提供硬件单总线,几乎都是根据单总线标准的时序图,通过普通IO翻转模拟实现单总线。而在模式实现时序图的过程中,需要根据CPU时钟频率等条件进行时序时间计算,如果更换CPU后,需要重新计...

  • Proteus仿真STM32在OLED显示字符串

    2024-07-08

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

    2024-07-08

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

  • 总结嵌入式C语言知识点

    2024-07-08

    引言    怎么才能做好嵌入式开发?学好C语言吧!今天就来推荐一篇大佬写的嵌入式C语言知识点总结。C语言中的关键字    C语言中的关键字按照功能分为:数据类型(常用char, short, int, long, unsigned, float, double)运算和表达式( =, +, -, *, while, do-while, if, goto, switch-case)数据存储(auto, static, extern,const, register,volatile,restricted),结构(struct, enum, union,typedef),位操作和逻辑运算(<<, >>, &, |, ~,^, &&),预处理(#define, #include, #error,#if...#elif...#else...#endif等),平台扩展关键字(__as...

  • 做一个STM32小车很简单吗,文末付代码

    2024-07-08

        最近想做一个STM32的小车,偶然在B站上看到某人做的STM32蓝牙小车,小车可以进行红外检测,能自动避障。看起来挺好玩,实践性也很强。    文末链接可以获取这个蓝牙小车的工程代码,提取码6kdv。    一看评论区却充满了酸激流的白菜馅儿饺子味儿。    不禁感叹,难道评论区已经人均大神了吗?    但也有的网友感慨楼上课设是真牛,自己的单片机课设只是做了一个抢答器这种难度的项目而已。也有的说是课设用了下温度传感器DS18B20,做了个小项目。    我当年读本科时,单片机老师鼓动我们同学凑钱买电子元器件、51单片机...

  • 用三极管制作简易功放,附电路图

    2024-07-08

  • 皮尔斯振荡器电路原理介绍

    2024-07-07

        本文介绍皮尔斯振荡器的电路工作原理。什么是皮尔斯(Pierce)振荡器    皮尔斯振荡器是石英晶体振荡器最常见的设计之一,皮尔斯振荡器在设计上与之前的 Colpitts 振荡器非常相似,非常适合使用晶体作为其反馈电路的一部分来实现晶体振荡器电路。    与标准振荡器相比的成本、尺寸、复杂性和功率,皮尔斯振荡器是在大多数嵌入式解决方案和设备中被广泛首选,以产生稳定的频率振荡。    一个简单的皮尔斯振荡器具有以下组件,如数字反相器、电阻、两个电容和一个石英晶体。皮尔斯振荡器电路如何工作    下图显示了简单的皮尔...

  • 常见嵌入式硬件部分面试题总结,附PDF

    2024-07-07

    同步电路和异步电路的区别是什么?    同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源,因而所有触发器的状态的变化都与所加的时钟脉冲信号同步。    异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,这有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?    将两个门电路的输出端并联以实现与逻辑的功能成为线与。在硬件上,要用OC门来实现,同时在输出端口加一个上拉电阻,相关文章:。由于不用O...