STM32
文章平均质量分 85
小飞哥玩嵌入式
公众号:嵌入式实验基地
展开
-
解决了个bug,想说点啥但又难以启齿
串口通讯bug,问题不大,头很大原创 2022-08-16 22:27:56 · 832 阅读 · 3 评论 -
聊一聊STM32的低功耗管理(附源码)
废话不多说,直接开干...先来看看STM系列手册为例看看STM32的几种工作模式,小飞哥最近用到STM32G0系列的MCU,就拿G0的手册来聊一聊吧,其他的都类似,功耗方面有些差别测试代码连接在文末评论区,可以下载测试STM32系列MCU的几种工作模式正常运行模式就不聊了,刚开始学单片机时候,什么都不干,down个代码就能跑起来的大多是这种模式,不缺电,不需要省电...从STM32G070手册来看,模式还是比较丰富的,下面来看看各个模式的意思1、睡眠模式(sleep mode)原创 2022-04-26 22:11:18 · 3499 阅读 · 4 评论 -
Cubemx与HAL库系列教程|系统时钟配置详解及源码分析
STM32时钟系统简介STM32种类繁多,时钟系统也不尽相同,但基本的还是大差不差,今日小飞哥就F1系列的MCU简单聊一聊STM32的时钟系统1、时钟种类介绍:先来看一看时钟树图,包含了整个系统的始终来源及各个外设的始终来源STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。接下来,各个时钟的含义听小飞哥白话白话,自己看ST手册也可以哒 1.1 HSI时钟(内部高速时钟) HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输原创 2022-02-15 22:11:47 · 5654 阅读 · 3 评论 -
如何制定通讯协议及如何解析协议数据
什么是通讯协议?通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程。电脑与电脑之间的沟通必须讲述相同的语言,才能互相传输信息,自然资料在国际互联网上传递,每一份都要符合一定的规格(即是相同的语言),否则中国送出的资料,在美国那边要怎么收下呢?这些规格(语言)的规定都是事先在会议上讲好的,一般我们称之为“协议”(英文称为protocol),而这种在网原创 2022-01-08 18:32:51 · 11061 阅读 · 1 评论 -
10分钟教你玩起来freemodbus
源码获取本节教程源码资料获取方式:1、公众号后台回复“modbus”2、小飞哥gitee仓库自提3、留言区获取资料链接freemodbus是什么?简介及应用场景FreeMODBUS是一个奥地利人写的Modbus协议。它是一个针对嵌入式应用的一个免费(自由)的通用MODBUS协议的移植。Modbus是一个工业制造环境中应用的一个通用协议。Modbus通信协议栈包括两层:Modbus应用层协议,该层定义了数据模式和功能;另外一层是网络层。协议介绍FreeMODBUS 提供了R原创 2021-12-16 23:28:51 · 8244 阅读 · 0 评论 -
Cubemx与HAL库系列教程|ADC+DMA多通道采集详解
什么是ADC资料获取见文末你以为的ADC哈哈,开个玩笑~~~说起来ADC,先来聊聊模拟信号与数字信号,简单来说就是模拟信号与数字信号简介 模拟信号 模拟电压信号在时间上和幅值上均是连续的信号叫做模拟信号。此类信号的特点是,在一定动态范围内幅值可取任意值。 数字信号 与模拟信号相对应,时间和幅值均离散( 不连续 ) 的信号叫做数字信号。数字信号的特点是幅值只可以取有限个值。下文引自:https://baijiahao.baidu.com/s?id=17014原创 2021-10-28 22:03:07 · 9609 阅读 · 3 评论 -
十分钟让你的JLINK成为调试利器
摘要想要打印调试信息,发现串口不够用了,手边没有USB转TTL模块?代码自己测试好好的,屏蔽了打印信息之后,代码运行异常了,咋整?EASY!今天小飞哥教你如何让你手中的JLINK成为调试利器,10分钟搞不定,你打我~觉得有用,别忘了点个赞哦,测试源码,关注公众号,后台回复“RTT”即可获取哦J-LINK 驱动安装可以在官网下载,选择对应的系统,对应的JLINK驱动版本https://www.segger.com/downloads/jlink当然了,也可以通过文章中放的资料链接下原创 2021-10-16 09:38:56 · 4328 阅读 · 0 评论 -
编码器计数原理与电机测速原理——多图解析
什么是编码器编码器,是一种用来测量机械旋转或位移的传感器。它能够测量机械部件在旋转或直线运动时的位移位置或速度等信息,并将其转换成一系列电信号。编码器分类按监测原理分类 光电编码器 光电编码器:是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光源、光码盘和光敏元件组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测转载 2021-09-24 21:08:00 · 10479 阅读 · 0 评论 -
不错哦|多级菜单实现起来就是这么简单!
摘要产品是面向用户的,用户需要的仅仅是功能以及有好的交互界面,多级菜单在其中扮演着重要的角色,有限的按键实现复杂的界面,层层相扣,标志法对于菜单的管理相当费劲,多了自己都会被自己绕晕...下面介绍一种还算不错的多级菜单是实现方式这个框架本身不复杂,小伙伴们可以直接看源码,有什么问题,可以一起交流硬件连接STM32F407ZGT6ST7789 LCD屏(SPI1,复用开发板NRF24L01接口)3个按键 PC7、PC8、PC9代码实现实现起来比较简单,直接进入代码部分,我使用的原创 2021-09-18 22:34:57 · 2435 阅读 · 0 评论 -
IAP固件升级原理及实现详解
什么是IAP升级?IAP,即In Application Programming,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写。简单来说,就是开发者代码出bug了或者添加新功能了,能够利用预留的通讯接口,对代码进行升级UART、SPI、IIC、USB等等,当然还有wifi、4G、蓝牙等无线通讯手段,都可以作为IAP升级的方式,今天主要介绍如何使用串口对固件进行升级STM32的代码启动过程要想设计IAP,首先需要对MCU的代码启动过程有个了解,先来看看STM32的原创 2021-09-18 22:32:56 · 13277 阅读 · 1 评论 -
RT-Thread与cubemx|74HC595驱动数码管详解
Part1 74HC595简介74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK 的上升沿,串行数据由SDL输入到内部的8位位移缓存器,并由Q7'输出,而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。74HC595是具有三态输出功能(即具有高电平、低电平和高阻抗三种输出状态)的门电路。输出寄存器可以直接清除。具有100MHz的移位频率。引脚介原创 2021-07-04 14:54:26 · 1189 阅读 · 2 评论 -
编译后的程序内存分布
一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。Keil 工程在编译完之后,会有相应的程序所占用的空间提示信息,如下所示:...转载 2021-06-10 18:58:29 · 317 阅读 · 0 评论 -
HAL库与Cubemx系列|Systick-系统滴答定时器详解
Systick是什么?关于Systick,在Context-M3权威指南中如此描述:SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问原创 2021-06-09 23:47:47 · 6537 阅读 · 3 评论 -
开源电路分享のFalling Star Board
设计初衷 想自己做个能连网的时钟,结合RT-thread,显示个天气预报什么的,想想就挺有趣的。考虑到当前的芯片价格,和后续的设计,万一还有个啥奇妙的想法呢,就把这个做成了核心板。 一开始就只做了最小系统板,啥都没有。发现调试不方便,打印信息啥的我都得接线,很费劲,就直接加了个ST LINK,ART-PI提供了一个固件挺好用,带虚拟U盘和虚拟串口。 既然打算做个小屏幕显示图片,加个SD卡,那不想显示啥,就把图片存里面进行加载呗。通过SD卡升级程序也可以啊,更换固件很方便呀,后面发现,能联网原创 2021-06-09 13:50:03 · 538 阅读 · 0 评论 -
循环队列原理及在单片机串口通讯的应用(二)
前言 书接上回,前文主要介绍了环形队列的实现原理以及C语言实现及测试过程,本文将回归到嵌入式平台的应用中,话不多说,淦,上干货!实验目的 HAL库下串口的配置及使用 环形队列在串口数据接收中的使用 硬件环境 falling-star board(自设计,下期开源资料,主控STM32f103RET6) 软件环境 keil5 cubemx cubemx配置1、 时钟的配置, 无论什么平台,什么单片机,第一步,我想都是要搞清楚时钟,时钟是一原创 2021-06-09 13:47:25 · 1081 阅读 · 0 评论 -
循环队列原理及在单片机串口通讯的应用(一)
前言 当代码,不再是简单的完成需求,对代码进行堆砌,而是开始思考如何写出优美代码的时候,我们的代码水平必然会不断提升,今天,咱们来学习环形队列结构。环形队列的基本概念 相信对数据结构有过接触的小伙伴,对队列肯定不会陌生,队列相对来说是比较简单的数据结构,典型特点是FIFO,即First in First out,先进先出,就像我们日常排队买票一样,先到的人先买票,先从购票口出去,从下面的图中,可以比较形象的了解队列的特性。 用数组创建一个普通队列,当有数据存储时,队列尾指针不断增加,原创 2021-06-09 13:46:05 · 1646 阅读 · 0 评论 -
如何对vscode添加右键打开文件夹功能
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\VSCode]@="Open with Code""Icon"="C:\Users\Wyf\AppData\Local\Programs\Microsoft VS Code\\Code.exe"[HKEY_CLASSES_ROOT\*\shell\VSCode\command]@="\"C:\Users\Wyf\AppData\Local\Programs\Micro.原创 2021-06-04 10:06:26 · 420 阅读 · 0 评论 -
HAL库与CubeMX系列|Cubemx新建HAL库工程
前言 工欲善其事,必先利其器。HAL库的开发不一定必须使用cubemx,但是使用了cubemx,你绝对不会后悔。基于一些小伙伴对cubemx的使用还有一些疑问,本次小飞哥从新建工程到生成工程,编写应用代码,和大家一起聊一聊到底该如何使用这个神器。本次是建立在已经安装好cubemx的情况下,错误之处还请多多指教。1、cubemx总体界面介绍 选择控制器MCU/MPU,有4个选项,一般小飞哥最常用的是第一个和第四个,第三个主要是没有对应板卡,可以快速找到自己用的MCU。 通过板子选原创 2021-06-03 23:52:51 · 1473 阅读 · 0 评论 -
矩阵键盘的“一厢情愿”与“两情相悦”
前言 日常设计中,不可避免的会使用到按键,像我们常见的 POS 机、计算器等设备用到的按键是非常多的,如果采用普通的 1 个 IO 1 个按键的设计方法,显然对单片机资源来说是非常浪费的,所以采用类似矩阵的设计思路,能够大大减少 MCU IO 的使用,也是我们所说的矩阵键盘。应用场景一、矩阵键盘的两种扫描方式 矩阵键盘常用的有以下两种扫描方式,相比较之下,小飞哥更推荐第二种扫描方式,第二种扫描方式能够更有效地避免错误按键,本次分享的也是第二种扫描方式的代码。 逐行扫描:高四位输原创 2021-06-03 10:09:57 · 201 阅读 · 0 评论 -
智能车电源设计
前言 经常玩智能小车的朋友们,福音来了,今天介绍一款很不错的电源管理板-不死鸟,集过压、过流、过温、反接等保护于一身,尽管折腾,自救能力极强。来自公众号群友的设计,已经打板验证。主要功能模块 自锁电路 电压检测/电池识别 快充输出 降压输出 过放保护 过流保护 过温保护 程控参数 不死鸟板说明 主控:STC15W408AS 频率:24MHZ 波特率:9600 ADC采样:12位..原创 2021-05-06 19:23:36 · 1868 阅读 · 0 评论 -
LVGL在STM32上的移植及触摸驱动移植(触摸屏控制版)
前言 在日常的开发中,涉及到用户显示界面控制的时候,如何快速、优美的设计一款用户UI,是攻城狮应该具备的能力(择偶优先权),如何把嵌入式UI设计像高级语言图形化设计一样简便、快捷,今天重磅介绍一款GUI设计开源库,LittleVgl,俗称LVGL,来吧,直接上干货,淦!硬件环境 STM32F407ZGT6(或者其他板子) 2.4寸TFT电阻式触摸屏 软件环境 keil5 lvgl软件源码 正点原子触摸屏例程 注:以上只是小飞哥使用的环境,其他原创 2021-04-25 16:49:54 · 7586 阅读 · 1 评论 -
常用数字、模拟量输出传感器原理介绍
哈喽,大家好,本期小飞哥带来的是常用的数字量输出传感器的原理与使用说明,希望能对伙伴们有帮助!实现目标:了解常用传感器的原理实现,达到举一反三的效果,学会如何操作;硬件准备:声音传感器(或者其他同类传感器)LED灯单片机(STM32F103C8T6或其他)软件:keil5先来介绍几款我们在DIY小玩意的时候经常用到的几款传感器:一、常用传感器认识 1、声音传感器 声音传感器,在某宝很容易找到,一般有4线制,三线制,主要区别是4线...原创 2021-04-13 19:30:52 · 10397 阅读 · 3 评论 -
基于STM32 HAL库硬件SPI的ST7789驱动(TFT-LCD 240*320)
点击上方「嵌入式实验基地」,选择「置顶公众号」第一时间查看嵌入式笔记! 在日常开发项目中,显示屏是经常使用的一个部件,显示屏的种类也是多种多样,但对于开发者来说,主要关心的是显示屏所用到的驱动芯片,本次给小伙伴们带来的是 STM32 下的 HAL 库硬件 SPI 驱动 320*240 分辨率的 TFT-LCD,LCD 显示屏驱动芯片为 ST7789,一步步实现如何驱动此类驱动芯片的 LCD 屏幕,话不多说,上干货! 完成目标 1、cubemx配置硬件SPI2、驱动240*320...原创 2021-04-13 19:21:37 · 11060 阅读 · 11 评论 -
开源电路设计のSTM32最小系统电路
点击上方「嵌入式实验基地」,选择「置顶公众号」第一时间查看嵌入式笔记!功能介绍 电源模块,12V转5V,5V转3.3V 1路485 FRAM ADXL345 3轴加速度计 2.4G NRF24L01 IIC接口OLED显示 TLP521光耦隔离 L298N电机驱动 一个用户LED,一个电源指示灯 1、电源部分电源包括两部分,一部分12V转5V,使用的电源芯片是LM2576,用于给电机驱动供电,一部分是5V转原创 2021-03-26 20:49:41 · 1992 阅读 · 0 评论 -
红外通讯之红外遥控器让你的舵机转圈圈
2021年第一篇文章,祝各位开工大吉,开学大吉,公众号也正是更名为“嵌入式实验基地”~ 本次为各位小伙伴带来的是一种非常普遍且便宜易实现的短距离无线通讯-红外通讯,电视机、空调虽无线控制方式也是五花八门了,但红外控制仍然占据着一席之地,本文从原理上介绍到最终实现控制舵机,当然不只是舵机,路铺好了,走什么车还不是自己说了算嘛,哈哈~闲话少说,开干!完成目标 HAL库定时器输入捕获功能使用 HAL库PWM多路输出使用 红外发射、接收测试 红外控制P...原创 2021-02-19 16:46:01 · 4144 阅读 · 2 评论 -
天气太冷不想出被窝?来DIY一个离线语音控制器
天气太冷不想出被窝?来DIY一个离线语音控制器 点击上方“Embeded小飞哥”,选择“置顶/星标公众号” 干货福利,第一时间送达!成就一番伟业的唯一途径就是热爱自己的事业。如果你还没能找到让自己热爱的事业,继续寻找,不要放弃。跟随自己的 心,总有一天你会找到的。 ——乔布斯 你去关灯,你去,你去,。。我去。。小伙伴们有没有在天气寒冷时候,想去关灯,却离不开心爱的被窝的经历呢,有的话,跟着小飞哥一起来DIY一个离线语音控制器,有了它,我们原创 2021-02-10 20:39:37 · 2676 阅读 · 3 评论 -
基于STM32的HC-SR04超声波测距模块实验
硬件环境STM32F407探索板(其他开发板皆可以)HC-SR04超声波模块软件环境KEIL5CUBEMX串口调试助手(sscom或其他)实验目标 了解HC-SR04超声波模块工作原理 实现超声波模块测距 1、超声波模块介绍1.1 超声波测距原理及系统组成超声波测距是借助于超声脉冲回波渡越时间法来实现的。设超声波脉冲由传感器发出到接收所经历的时间为t,超声波在空气中的传播速度为c,则从传感器到目标物体的距离D可用下式求出:D = ct/2,图 2是相应原创 2021-02-10 09:20:07 · 7089 阅读 · 2 评论 -
HAL 库 uS 延时的 3 种实现方式
CUBEMX 可视化初始化配置,结合 HAL 库,给我们开发带来了很多便利,但 HAL 库封装的延时函数目前仅支持 ms 级别的延时,日常很多情况下会用到 us 延时,特别是一些传感器的数据读取过程,对时序要求比较严格,us 延时必不可少,基于此项需求,此次给大家介绍 3 种 uS 延时的实现方式,方法同样适用标准库,不足之处,还请大佬指出。实验目标 使用普通定时器实现 us 延时 使用 Systick 功能实现 us 延时 使用 for 循环实现 us 延时 1、普通定时原创 2021-02-03 15:04:48 · 12142 阅读 · 10 评论 -
逻辑分析仪的简单使用介绍(附带i2c、串口、spi数据分析)
本次文章给大家介绍一种便宜好用的协议分析工具,逻辑分析仪,首先声明,小飞哥作这篇介绍文章,不是为了打广告哈,实在是因为这个小玩意很好用,有些小伙伴还不太清楚该如何使用!!!废话不多说,下图是我目前用的一种,8通道24MHZ,一般的低速信号分析是足够用了,比较高级的功能也更高级,当然价格也更贵。话不多说,开始对这个小玩意如何使用进行简单的介绍。实验目标:1、学会使用逻辑分析仪采集常用协议信号;2、学会如何分析协议数据;硬件准备:1、逻辑分析仪2、电路板(什么型号无所谓,能正常运行就原创 2021-01-11 10:55:04 · 28161 阅读 · 4 评论 -
基于STM32的DAC音频输出实验
基于STM32的DAC音频输出实验新年新迹象,辞旧迎新,小飞哥先跟大家拜个年!经过了2020年的各种不顺,迎来了2021年,首先祝大家否极泰来,新的一年事事顺心,工作顺意,都能健健康康的! 小飞哥2020年大概是10月份开始做技术方面的公众号分享,非常感谢小伙伴们的支持,在未来的日子里,小飞哥会继续陪伴大家,和大家一起变得更加优秀,同时也更加努力地分享有价值、有意义的文章,也希望能够得到更多志同道合的朋友的支持!寒暄过后,来,干!----------------------...原创 2021-01-01 18:25:16 · 7370 阅读 · 3 评论