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

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

技术阅读

  • 爱上单片机,拿下奖学金,一名嵌入式小白的成长记录

    2023-09-25

    最近来了一些小白同学,分享点经验。希望以下的一些经验、经历可以给这些同学一些参考方向。ZhengN是新能源专业的,曾经编程这一块让我很是头疼。我学新能源的,为啥还要学这东西。。(作为嵌入式大杂烩公众号的小编,有谁能想到我C语言曾经挂了两次~)。后来被老乡带入嵌入式坑的,后来就一在坑内,但很知足。否则如果按照本专业走我现在多半、大概成为了一名太阳能电池板安装工、热水器安装工~偏门专业入坑嵌入式,应该比较有参考价值。嵌入式,以玩为学。先动手玩起来,培养点兴趣~1、爱上单片机 内容来自我之前在知乎问题:你是怎样爱上单片机的...

  • USB基础知识(二)

    2023-09-25

    点击上方蓝字关注我们!前言    上一篇USB基础知识(一)中我们介绍了一些USB的基础知识,这篇我们还是继续介绍一些基础知识,为后面学习USB驱动做铺垫。USB拓扑结构下面是一张连接拓扑图:顶端为USB主控制器和根集线器,下面接USB集线器,USB集线器可以将一个USB口拓展为多个USB口,多个USB又可以通过集线器进一步拓展。USB协议中对集线器的层数是有限制的,USB1.1规定最多为4层,USB2.0规定最多为6层。理论上,一个USB主控制器最多可接127个设备(协议规定每个USB设备具有7bit的地址,取值在0~127,其中0保留给未初始化的设备使用)一台机器可以接...

  • USB基础知识(一)

    2023-09-25

    点击上方蓝字关注我们!前言    接下来的几篇文章都是跟USB驱动相关的,而USB又是个很复杂的东西,所以如果一下子就扎进去学习源码,就会一头雾水。所以在学习USB驱动之前,我们先来了解一些USB的基础知识。USB介绍    USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔。USB协议版本有USB1.0、USB1.1、USB2.0、USB3.0等,USB2.0,USB3.0目前应用比较广泛了。    由于USB是主从模式的结构,设备与设备之间、主机与主机之间不能互连,为解决这个问题,扩大USB的应用范围,出现了USB OTG(ON The Go)。...

  • 嵌入式编程是否应该用C++替代C语言

    2023-09-25

    嵌入式编程是否应该用C++替代C语言1.前言2.引进新的设计模式3.C++是一种不断更新的语言4.C++有着更加丰富的特性5.总结 1.前言 几十年来,嵌入式软件工程师们一直在争论是否应该使用C++替代C语言进行开发工作。根据2019年IEEE和github的市场调查显示,微控制器制造商提供的软件大部分都是由C语言编写。事实上,56%的嵌入式软件是用C语言编写的。然而,C++已经逐渐普及,大约23%的新嵌入式软件项目都是用C++编写的。C语言发展到现在,差不多50年的时间了,现在正是c语言过渡到C++语言成为嵌入式开发主流语言的最佳契机。对于习惯了用C语言开发的嵌入式...

  • 解 Bug 和写 Bug 哪个更难

    2023-09-25

    相信本身做代码开发的,很大很大一部分时间也都是在 Debug 自己的代码,不过也得要分为好几种情况。自己做代码设计、编写、Debug。只编写代码,同时 Debug 自己的代码。Debug 别人的代码。通常如果是按照职业来区分的话,有分为 FAE、CE、RD 等等,FAE 和 CE 偏向于只解决问题,并不去做代码的设计与开发,这个都大概知道,RD 就是 Research And Development engineer,也就是常说的研发工程师。虽然呢,RD 有很多时候也是要搞别人的锅,但是总归是会有一部分比例得要进行开发性的设计与实现的,而且同样是解决问题,有些时候的一些侧重点和 FAE、CE...

  • Linux下应用开发基础

    2023-09-25

    点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!应用程序开发方式 在Linux下开发应用程序可以调用两种接口来实现,一种是直接调用系统调用接口,另一种是调用库函数来实现。1、什么是系统调用?系统调用(System Call)是操作系统提供的服务,是应用程序与内核通信的接口。Linux提供的系统调用包含的内容有:文件操作、进程控制、系统控制、内存管理、网络管理、socket套接字、进程间通信、用户管理等。相对于普通的函数调用来说, 系统调用的性能消耗也是巨大的。所以在追求极致性能的程序中, 都在尽力避免系统调用。2、C...

  • 万变不离其宗之单片机串口共性问题

    2023-09-25

    关注、星标嵌入式客栈,精彩及时送达[导读] 单片机开发串口是应用最为广泛的通信接口,也是最为简单的通信接口之一,但是其中的一些要点你是否明了呢?来看看本人对串口的一些总结,当然这个总结并不能面面俱到,只是将个人认为具有共性以及相对比较重要的点做了些梳理。啥是串口? 首先这玩意儿分两种:通用异步收发器(UART)是用于异步串行通信的一种物理层标准,其中数据格式和传输速度是可配置的。通用同步收发器(USART)是一种串行接口设备,可以对其进行编程以进行异步或同步通信。数据格式线上空闲、无数据状态为常高电平,故逻辑低定义为起始...

  • SG90舵机驱动原理和实现

    2023-09-25

    基本参数工作扭矩: 1.6KG/cm反应转速: 0.12-0.13秒/60°转动角度: 最大180度死区设定: 5微妙使用电压: 3.5-6V舵机应用场景固定翼直升机滑翔小型机器人机器手航模电机动力套餐在航模中,舵机可以控制水平尾舵面,用来控制飞机的俯仰角;控制垂直尾舵面,可以控制飞机的偏航角;舵机通过连杆等传动元件带动舵面的转动,从而改变飞机的运动状态。舵机因此得名:控制舵面的伺服电机。不仅在航模飞机中,在其他的模型运动中都可以看到它的应用:船模上用来控制尾舵,车模中用来转向等等。由此可见,凡是需要操作性动作时都可以用舵机来实现。(动图...

  • Linux信号量(1)-SYSTEM V

    2023-09-25

    信号量概念信号量本质上是一个计数器(不设置全局变量是因为进程间是相互独立的,而这不一定能看到,看到也不能保证++引用计数为原子操作),用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享。信号量分类因为各种原因,Linux下有多种信号量实现机制,可以分别应用于不同的场合,分类如下:[信号量分类]用户信号量主要运行于用户态,比如进程间都要访问某个文件,那么只有获得信号量的进程才能打开文件,其他进程会进入休眠,我...

  • USB 之枚举过程概述

    2023-09-25

    上篇笔记我们大概了解了一下 USB 设备插入主机后经历了什么阶段,本篇笔记和接下来的笔记将详细介绍整个流程。每一个USB插入后交互的数据都可能不同,比如 U 盘和 CDC 设备的数据交互肯定不同,但基本流程是一致的,所以鱼鹰将以 CDC 设备作为接下来的讲解目标介绍交互情况。USB 枚举,在有些资料中,认为是插入USB后,USB 设备分配到新的设备地址,就认为枚举结束,这可能是更准确的定义,但为了更好的说明,鱼鹰把插入后的整个交互过程都称为枚举,也就是设备能被主机正确识别,可以被上位机使用了。首先我们要了解,枚举的终极目标是什么?当然是...

  • ESP8266实战贴:使用HTTP POST请求上传数据到公有云OneNet

    2023-09-25

    最近一段时间无论是正副业挺忙,人生的第一个父亲节,将在天津度过,这也是我生平第一次走出广东,活已经完成99%了,相对来说还是挺有成就感的,学习了不少东西,今天下午休息,开始继续更新公众号推文:ESP8266可玩性真的很高,公众号之前也发了不少ESP8266的应用,比如最近,我就把之前做的小车改良了,因为那个小车由于自己装配工艺不好,四个轮子经常跑偏,于是我就又花了上百大洋,重新打造了一个坦克,还没来得及发文呢,给大家展示下效果:好了,下面进入正题,使用ESP8266来上传数据到公有云-OneNet。纵观大部分公有云,就目前个人接触过的...

  • SPI协议,MCP2515裸机驱动详解

    2023-09-25

    SPI概述Serial Peripheral interface 通用串行外围设备接口是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间。SPI特点采用主-从模式(Master-Slave) 的控制方式SPI 规定了两个 SPI 设备之间通信必须由主设备 (Master) 来控制次设备 (Slave). 一个 Master 设备可以通过提供 Clock 以及对 Slave 设备进行片选 (Slave Select) ...

  • 树莓派4裸机基础教程:从hello world开始

    2023-09-25

    树莓派4裸机基础教程:从hello world开始1.前言2.项目工程介绍2.1 Makefile2.2 link.ld 链接文件3.从CPU的角度看代码的运行3.1 start.S文件3.2 main函数的功能4.树莓派4串口外设程序4.1 设置gpio的功能4.2 配置串口控制器5.总结1.前言当我们去研究一个系统的时候,首先需要从最简单的程序开始入手。前面文章的介绍已经描述了项目的环境搭建以及启动过程。树莓派4裸机基础教程:环境搭建树莓派4裸机基础教程:芯片启动到代码执行本文主要从最简单的裸机代码开始分析,让板子的串口可以输出hello world信息。这篇文章会介绍工程的构建,程序的运行等等...

  • 树莓派4裸机基础教程:芯片启动到代码执行

    2023-09-25

    树莓派4裸机基础教程:芯片启动到代码执行1.说明2.树莓派的sd卡3.config.txt的配置信息4.小结 1.说明 在做嵌入式开发的时候,每个芯片都有自己的启动方式。在做底层优化的时候,往往也需要关注芯片的启动方式,涉及到启动时间,启动的稳定性问题。所以关注芯片的启动方式非常的重要。在使用电脑的时候,电脑上电后首先会执行BIOS,这个是厂家固化到ROM里面的代码,一般从电脑生产出来到电脑的寿命结束,其中的内容都是不会变的。而系统却可以经常更换,我们可以装Linux系统,也可以装windows系统。这个就是电脑的启动过程。类比芯片的启动过程,大多...

  • 树莓派4裸机基础教程:环境搭建

    2023-09-25

    树莓派4裸机基础教程:环境搭建1.文章目的2.树莓派4B的硬件配置3.第一个基础工程构建3.1 环境准备3.2 源代码下载3.3 代码编译与程序下载3.4 树莓派硬件链接4.优化调试手段4.1 修改sd卡文件中的config.txt文件4.2 修改网络环境4.3 修改代码的链接地址5.小结 1.文章目的 树莓派4作为一款学习嵌入式arm开发的开发板,是非常不错的选择。嵌入式开发往往需要的不仅仅是理论知识,还需要动手操作,然后实际体验效果。由于目前开发板要么资料太少,要么板子太贵,或者可玩性太低,所以嵌入式的入门和深入一直都是非常困难的问题。我写树莓派4裸机基础教程、...

  • 从0实现基于Linux socket聊天室-增加公聊、私聊-4

    2023-09-25

    前面文章链接如下:《从0实现基于Linux socket聊天室-多线程服务器模型-1》《从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2》《从0实现基于Linux socket聊天室-实现聊天室的登录、注册功能-3》上文中,我们基于多线程的框架,实现了注册和登录的功能,这一章,我们在此基础上来实现公聊、私聊、显示在线用户列表功能。公聊接着上几篇的流程图我们详细讲解公聊流程图如下:如上图所示,我们去掉了网络连接和客户端登录、注册等功能,直接进入聊天的流程:客户端从菜单选择公聊功能;输入要聊天信息;回车发送聊天信息;服务器的子线...

  • 来尝试一下linux内核编译的“苦”

    2023-09-25

    一、前言(仅供参考)linux内核该如何学习?1、安装vmware虚拟机或者virtualbox,再安装发行版本linux2、www.kernel.org,挑选一个内核版本3、进行解压并编译4、自己写一些模块(比如说可以去尝试解一些官网的bug),如下图所示:下面我们就可以看到还有很多内核bug未解决的问题还在那里:下面是提交的bug测试报告:最后有可能的话,可以去试试尝试解这些bug!!!5、内核源码(网络)阅读:tcp_input.c tcp_out.c tcp_ipv4.c  tcp.c进程管理:task_struct6、书籍参考(刚开始可以只看一本书就够了,多看几遍,不求多,只求精,真正搞明白原理,这本书的...

  • 链接脚本linker script的妙用

    2023-09-25

    链接脚本linker script的妙用1.概述2.静态链接和动态链接2.1 静态链接2.2 动态链接2.3 两种链接方式的对比3.链接脚本3.1 链接脚本实例分析3.2 内存的分段链接3.3 指定第一个文件的链接3.4 自己定义代码段名字4.总结1.概述编译器将编写的C程序代码进行翻译,变成机器可以执行的程序,这个大致上可以分为四个步骤:预编译、编译、汇编、链接。其中编译和链接这两个过程比较重要。编译过程就是将源代码通过程序翻译后生成机器可以认识的机器语言。而链接就是将目标文件进行组合,最后生成在特定平台上可以正常运行的可执行程序。本文主要描述链接这个过...

  • STC单片机开发环境建立及更新LD3320模块程序

    2023-09-25

    因为LD3320模块上使用STC11L08XE与LD3320A芯片进行交互,我们要想利用模块官方提供的Demo进行二次开发,那么首先要搭建一个STC单片机开发环境并学会更新LD3320模块固件程序的方法。安装Keil4安装C51V901.exe软件,一路默认安装即可,如果之前安装过MDK5,也就是Keil5,更换一个安装目录即可。激活软件Keil --> File --> License Management此软件仅供学习使用,请支持正版。编译工程文件拷贝一份口令模式的Demo代码打开此工程打开过程中,可能报错:这个是因为原工程的Keil安装目录跟你的电脑Keil的安装目录不一致导致的,我点击“确定”按钮,然后...

  • STM32实现等精度测频

    2023-09-25

    上一章介绍了利用STM32的TIM的捕获功能实现频率测量的方法,但测量误差受被测信号频率的影响,不适合测量频率变化较大的 。本章将介绍等精度测频的方法以及STM32的实现。    STM32硬件电路板及仿真器(以STM32F072C8单片机为例)    Keil v5以上版本(MDK-ARM)基本原理首先看一张图:传统的测频方式,闸门放时间是固定的,闸门时间内被测信号的计数个数Nx不一定是整数个,因此会有一定的误差,且误差与被测信号频率有关。而等精度测频的方法,闸门时间不是固定的,而是被测信号的整数倍。 因此消除了对被测信号计数的±1误差,其误差只与...

  • ​STM32F103 IAP在线升级通过串口升级

    2023-09-25

    STM32F103 IAP在线升级通过串口升级                                         作者:Tkwer公众号:Tkwer望远镜  前言    有很多种IAP在线应用升级固件的方法,具体可以参照bug菌写的文章:【重磅】剖析MCU的IAP升级软件设计(设计思路篇)    下面我将从STM32F103RXT6这块板子进行实验,这板子已完全硬件开源可访问此篇文章获取设计文件:【自制分享】分享一块自制STM32F103RETX开发板!!!功能实用     首先声明该程序并不是我写的,而是 havenxie 大佬写的。我们需要以下工程文件,boot文件夹是IAP的BootLoader...

  • 学习AI之机器学习概念篇

    2023-09-25

    关注、星标嵌入式客栈,干货及时送达[导读] 人工智能在时下属于非常热门的技术,工作了10余年,对此领域却了解甚少。所谓不进则退,慢进亦退!长江后浪推前浪,前浪死在沙滩上,嗯,我还是要挣扎一下,所以下决心在工作之余花时间学习相关技术,以免被时代遗弃。将间断更新分享个人学习笔记。文中观点错误一定很多,恳请指正。本文从整理一下机器学习的动因、由来、概念及理论要点。机器学习是啥 机器学习(Machine Learning)是人工智能(AI)的一种形式,它使系统能够从数据中学习而不是通过显式编程来学习。但是,机器学习不是一个简单的过程。随着...

  • 基于STM32的DIY遥控小船制作

    2023-09-25

    点击上方蓝字关注我哦~01前言周末带小朋友去公园玩耍,别的小孩在池塘里玩饮料瓶做的漂流船,看着他欢乐的跟着跑跳,无比羡慕的眼神,却又不能上手的小失落,又回想起儿时用泡沫板和小电机以及电池做的小船,和那时对于电驱动产生的无比兴趣,我决定升级一下儿时的装备,基于STM32给小朋友DIY一个遥控小船,使他成为公园里焦点,同时也期待他对电气控制产生一点点好奇。基本构想如下:stm32驱动两个小电机,小电机上安装两个螺旋桨,可以实现双桨前进、后退,单桨转弯等。供电使用18650电池,通过升压放电板管理电池的充放电。遥控使用最廉价的红外...

  • H桥电机驱动电路详解

    2023-09-25

    点击上方“果果小师弟”,选择“置顶/星标公众号”干货福利,第一时间送达!电机:俗称“马达”,依据电磁感应定律实现电能转换或传递的一种电磁装置。包括:电动机和发电机。电动机在电路中是用字母M表示,它的主要作用是产生驱动转矩;作为用电器或各种机械的动力源,发电机在电路中用字母G表示,它的主要作用是利用机械能转化为电能。电机控制:对电机的启动、加速、运转、减速及停止进行的控制。1.直流有刷电机直流有刷电机(Brushed DC,简称BDC),由于其结构简单,操控方便,成本低廉,具有良好的偏动和调速性能等优势,被广泛应用于各种动力器...

  • 2020电赛D题—可穿戴体温测量仪LMT70

    2023-09-25

    点击上方“果果小师弟”,选择“置顶/星标公众号”干货福利,第一时间送达!摘要:LMT70是一款模拟温度传感器,单片机与芯片的通信方式是ADC采集芯片的模拟输出口电压,根据查表法可以得到相应的温度,但是在具体测温过程中TI官方提供了输出电压与实际温度的二阶和三阶线性方程,可以通过提供的方程直接算出具体的温度。另外这款芯片的供电电压最好为3.3V电压。LMT70是精密模拟温度传感器,其供电要求低、引脚简单、具有很宽的温度测量范围,是一款医用级的传感器。LMT70几乎适用于所有高精度、低功耗的经济高效型温度感测应用,例如物联网传感器节...

  • 2020电赛C题—ADS1292R心电图检测仪

    2023-09-25

    点击上方“果果小师弟”,选择“置顶/星标公众号”干货福利,第一时间送达!摘要:ADS1292R是TI公司早在几年前出产的一款医用级ADC芯片,它主要应用在医疗仪器(心电图ECG),可以监护患者以及病人护理和健身监视器。ADS1292R集成了心电采集所需要的部件,方便设备小型化。它的功耗极低,使得可以作为长时间监控成为可能。而且输入参考噪音低,共模抑制比高。足以进行心电采集。电赛很可能会让大家利用这款芯片做一个心电图检测仪,显示模块很可能就是大家所熟知的RGB大屏幕,同时这道题应该是信号题了。先来看一段官方视频,体会一下这个心电检测仪到...

  • 一个开源的RTOS的Chibios的评测

    2023-09-25

    一个开源的RTOS的Chibios的评测1.Chibios介绍1.1 chibios是什么?1.2 chibios的特点2.chibios的工程组织2.1 ChibiOS/RT2.2 ChibiOS/NIL2.3 ChibiOS/LIB2.4 ChibiOS/SB2.5 ChibiOS/HAL2.6 ChibiStudio3.RTOS设计思想浅析3.1 中断处理3.2 系统状态3.3 调度机制3.4 线程工作空间4.在树莓派上真实体验效果5.总结 1.Chibios介绍 1.1 chibios是什么?chibios的作者是Giovanni Di Sirio。chibi这个名称在日语是小孩的意思,所以ChibiOS  (ちびOS)也被可以理解成小型的操作系统。官网链接如下:http://www.chibios.org/dokuwiki/doku.phpChibiOS / RT于2007...

  • GY-302 数字光照传感器光照模块驱动

    2023-09-25

    点击上方“嵌入式从0到1”,选择“置顶/星标公众号”干货福利,第一时间送达!光照传感器在生活中应用很广泛,比如根据光线自动控制路灯的开关、自动窗帘根据光线进行调整、根据光线调节屏幕背光等等;光照强度的测量我们可以选用光敏电阻、光敏二极管或者类似本文这样的数字光照传感器。下图中所示即为GY-302(BH1750FVI )光照传感器,他们除了封装不一样以外,驱动方法是一样的。模块参数采用ROHM原装BH1750FVI芯片供电电源:3-5V传感器内置16bitAD转换器,光照度范围:0-65535 Lx结果直接数字输出,省略繁杂的计算,省略标定标准NXP IIC通信协议...

  • 嵌入式出路

    2023-09-25

        很多人对FPGA理解还停留在CPLD阶段,认为FPGA只是用来做一些逻辑接口或算法而已,那就大错特错了,如果你一直做FPGA的逻辑而又不是很精通,又或者做其它嵌入式(如单片机、ARM)开发可以看下这篇文章,或许对你有所帮助。1. 如果你是学习数字电路后,直接入行FPGA的话      你比较容易吃透FPGA的并行编程思想,比较容易入门FPGA的逻辑编程,然后在逻辑编程中越走越远,最后成为逻辑大牛,这样的人大有人在,但是也有很多 人成不了大牛,然后就去学习ZYNQ,其实不太建议直接去学习ZYNQ,因为 ZYNQ的门槛比较高,需要的基础知识比较多,而...

  • DMA+ADC快速采集直流无刷电机电流

    2023-09-25

    1. 摘要本篇笔记主要介绍,如何在STM32上如何通过DMA+ADC的模式快速采集直流无刷电机电流,本介绍是基于之前上篇推送《CAN通信控制一拖二直流无刷电机》的工程2. 准备工作1), IAR 8.3.12), 运行正常的直流无刷电机控制工程3. 问题指出在做电机控制的时候,我们的功率管开关频率很高,我们需要快速采集相电流,这次的工程是六步法控制直流无刷电机,如果快速的采集电机的相电流。4. 解决问题STM32的ADC有注入组和规则组之分,经常在中点采集的时候我们用注入组,其他采集可以用规则组,而这次采集相电流,我们使用规则组,两个PWM周期采集64个点...