
STM32
文章平均质量分 88
意法半导体
Naiva
人生就是不断学习让自己满意的过程——学无止境!
1、Standing on Shoulders of Giants!
2、Read、Ask、Search
3、WeChatID:903828673
展开
-
STM32入门笔记(03):二阶低通滤波对ADC采样结果进行优化(SPL库函数版)(4)
尽管STM32F103C8T6是一款相对较低性能的MCU,原创 2025-04-02 09:11:57 · 631 阅读 · 0 评论 -
STM32入门笔记(03): ADC 电阻分压的方式测量电池电压方案(避免浮点运算,改为整数运算)(SPL库函数版)(3)
通过将 ADC 值与预先计算好的常数相乘,您可以简化计算过程,减少乘法和除法运算,减轻单片机的负担。我们还可以选择使用整数运算,进一步提高效率。这种方法对于高效且稳定的电池电压测量非常有效。原创 2025-03-22 16:34:07 · 800 阅读 · 0 评论 -
国产航顺HK32F030M:WS2812 炫彩LED灯驱动笔记(C51/STM32/HK32)
3528 幻彩雾状 贴片式发光二极管。原创 2024-08-29 20:19:51 · 861 阅读 · 0 评论 -
【开源移植】MultiButton_小型按键驱动模块移植
源文件 源文件头文件源文件头文件源文件原创 2024-08-03 23:52:17 · 444 阅读 · 1 评论 -
单片机关键任务优先级的实现学习
与总体产品联调时,需要各个单机系统严格按照总体要求,进行数据输出,时间的偏差将出现系统异常,控制失败等不稳定情况产生,甚至影响到产品安全。因此必须确保某些关键任务的优先执行。单片机任务优先级一般有两种方式实现,和。基于中断服务函数实现的任务优先级对单片机硬件资源有要求,而对于实时操作系统的任务调度方式,仅需一个定时器就可完成多任务多优先级的管理。参与某产品联调时,总体要求每间隔5ms向总控发送一次关键数据。当系统联调运行时,总控会产生超时报警,报警内容是通信超时。原创 2024-07-03 23:40:12 · 1637 阅读 · 0 评论 -
STM32入门笔记(03): ADC低通滤波(IIR)(SPL库函数版)(2)
A/D转换的常用技术有逐次逼近式、双积分式、并行式和跟踪比较式等。目前用的较多的是前3种。A/D转换器的主要技术指标转换时间分辨率转换精度ADC应用设计深入讨论尽管STM32内部集成了12位ADC,但在实际应用中,要想真正实现12位精度且比较稳定的ADC并不简单,需要进一步从硬件、软件方面进行综合、细致地考虑。下面介绍一些在ADC应用设计中应该考虑的几个要点:工作电压的稳定性AVCC是提供给ADC工作的电源,如果AVCC不稳定,就会影响ADC的转换精度参考电压的确定ADC的参考电压应稍大于输入电压的最高值原创 2024-07-03 22:08:57 · 2471 阅读 · 0 评论 -
【单片机C代码框架学习】SH367309_GD32(HashTemp.c/Filter_Digital.c)(LiHua)
ADC 范围和放大器4095100# define ADC_RANGE 4095 # define AMPLIFIER 100 // 温度计算的放大倍数NTC 电阻-温度表这是一个将温度值(以摄氏度为单位)映射到具有3435 B值和25°C时标称电阻为10kΩ的NTC热敏电阻的电阻值的表格。原创 2024-07-03 00:13:52 · 998 阅读 · 0 评论 -
STM32入门笔记(02):USART串口通信注意事项笔记(SPL库函数版)
这是通过串口通信发送过来的数据,里面包括了故障码,电压,电流,频率等信息,请你用STM32f103系列单片机的串口1读取该数据并解析出电压和电流是多少?31。原创 2024-05-19 17:38:00 · 804 阅读 · 0 评论 -
【工具】阿莫智能设备之脱机烧录器K202C-1
注意,本文档仅仅是介绍烧录器的资料构成,并非烧录器的说明书,详细请看各对说明书及视频。原创 2024-02-23 22:08:15 · 1671 阅读 · 0 评论 -
STM32F103x 驱动步进电机 28BYJ-48 (4相5线8拍5.625/64步距角)
28BYJ-48 – 5V 步进电机 28BYJ-48 是一款小型步进电机,适用于多种应用。28:电机的直径;B: 表示步进电机;Y:表示永磁体;J:表示减速电机;4:表示4相;8:表示8拍;原创 2024-01-06 00:36:43 · 7656 阅读 · 11 评论 -
STM32F103x TB6612FNG电机PID控制基础资料
TB6612FNG 是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流 MOSFET-H 桥结构,双通道电路输出,可同时驱动 2个电机。相比 L298N 的热耗性和外围二极管续流电路,它无需外加散热片,外围电路简单,只需外接电源滤波电容就可以直接驱动电机,利于减小系统尺寸。对于 PWM 信号输入频率范围,高达 100 kHz 的频率。原创 2023-11-25 11:25:49 · 660 阅读 · 0 评论 -
【单片机基础】按键状态机实现短按、长按、双击、三击和N击
[1] 【优快云@PillarPeng】【按键】[独立按键] - 1: 单击,双击,三击以及N击[2] 【优快云@PillarPeng】【按键】[独立按键] - 2:双击[3] 【优快云@PillarPeng】【按键】[独立按键] - 3:三击 以及 N击[4]【youkuaiyun.com_Walke】【stm32单片机基础】按键状态机实现长按和短按原创 2023-10-24 00:19:23 · 1243 阅读 · 3 评论 -
Keil软件仿真的方法: μVision5 调试器 (自动补全、注释/取消注释快捷键)
对于8051单片机进行软件仿真的方法是使用集成开发环境提供的软件模拟器,它不需要有专用的硬件编程器或系统板的配合,可以独立完成单片机的模拟运行,接下来我们就以位操作流水灯的程序为例,来说明如何对8051系列单片机进行软件仿真。**设置断点的方法有几种,最简单的是双击程序行,当程序行的前面出现红色的方块形图标时,断点即设置完成。4)在已经设置了断点的程序行上,再次在鼠标右键菜单中,选择“插入/删除断点”项来取消断点,或选择“有效/禁止断点项”来使能或失能断点,同样的功能也可以在“调试”菜单中找到,如图。原创 2023-10-10 20:59:19 · 8790 阅读 · 0 评论 -
TIM输入捕获笔记 (计算编码电机的频率和占空比)
电平跳变CNTCCRCNTCCR。(定时器的结构图)原创 2023-08-27 23:08:27 · 716 阅读 · 0 评论 -
STM32入门笔记(03):STM32F103C8T6定时器的输入捕获模式和编码器模式(SPL库函数版)
调用相关初始化函数,在 while 循环中以一定周期读取并向串口调试助手发送编码器计数值(即电机速度),每次读取编码器计数会在读取函数中将编码器计数清零。初始化 GPIO、定时器时钟→初始化 GPIO 引脚→初始化定时器→初始化定时器输入捕获→初始化中断分组→使能定时中断、输入捕获中断→使能定时器。使能 GPIO、定时器时钟→初始化 GPIO(两个)引脚→初始化定时器→初始化定时器编码器→使能定时器。按键按下产生上升沿,激活定时器输入捕获中断,进入中断服务函数,定时器重新计数,设置为下降沿捕获;原创 2023-03-12 23:38:30 · 4541 阅读 · 1 评论 -
STM32入门笔记(02):独立看门狗(IWDG)和窗户看门狗(WWDG)(SPL库函数版)
除了始终控制器的RCC_CSR寄存器的父为标志位和备份区域中的寄存器以外,系统复位将复位所有寄存器至它们的复位状态。1.NRST引脚上的低电平,即 外部复位;2.窗口看门狗计数器终止,即 WWDG复位;3.独立看门狗计数器终止,即 IWDG复位;4.软件复位 , 即 SW复位;5.低功耗管理复位。略[1]【B站@正点原子官方】全是干货无套路 | 手把手教你深入学习独立看门狗&窗口看门狗[2]【B站@阿熊话太多】单片机中居然也有狗?STM32两条看门狗详解,独立看门狗和窗口看门狗。原创 2023-03-07 22:10:12 · 1560 阅读 · 0 评论 -
FreeRTOS实时操作系统 —基于STM32
前在使用 51、AVR、STM32 单片机裸机(未使用系统)的时候一般都是在main 函数里面用 while(1)做一个大循环来完成所有的处理,即应用程序是一个无限的循环,循环中调用相应的函数完成所需的处理。有时候我们也需要中断中完成一些处理。相对于多任务系统而言,这个就是单任务系统,也称作前后台系统,中断服务函数作为前台程序,大循环while(1)作为后台程序。前后台系统的实时性差,前后台系统各个任务(应用程序)都是排队等着轮流执行,不管你这个程序现在有多紧急,没轮到你就只能等着!原创 2022-09-07 16:16:43 · 3746 阅读 · 0 评论 -
STM32入门笔记(02):SPI 通信之xxx(SPL库函数版)
目录SPI 简介内部结构图简明图SPI工作原理SPI引脚配置(F407 有3个SPI)常用寄存器相关库函数程序配置过程硬件连接参考资料先导知识STM32入门笔记(02):IIC 通信STM32入门笔记(02):UART串口通信SPI 简介SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约原创 2022-09-07 16:15:57 · 671 阅读 · 0 评论 -
国产沁恒CH32F103C8T6使用踩坑记录
先导知识1. 国产沁恒CH32F103C8T6使用指南:KEIL5 开发环境的固件包、STlink+串口+USB仨种下载程序的方式CH32F103C8T6官方资料EXAM_Pack下载:链接:https://pan.baidu.com/s/17Gdrg6dyCnAVEg5DiEkTnA 提取码:e4vl2022.04.12 记录:问题1: USB和串口下载程序的问题:WCHISPTool 程序下载软件报错提示无法识别USB设备,串口下载能识别USB转TTL的驱动COM口却下载程序失败!!!原创 2022-04-12 11:46:33 · 2617 阅读 · 1 评论 -
STM32入门笔记(02):USART通信之手机APP蓝牙实验记录(SPL库函数版)
目录标题控制流程硬件设计软件设计工程目录:实验效果:参考资料先导知识STM32入门笔记(02):AFIO复用端口与重映射 、NVIC中断优先级管理、外部中断、串口通信及串口实验(SPL库函数版)控制流程手机APP ——蓝牙通信——> 蓝牙TBO4模块 ——UART2串口通信 ——> MCU STM32F407硬件设计硬件准备:1.STM32F407VET62.无线蓝牙串口透传BT04从机BL(蓝牙)MCU (F407)RxPD5 (US原创 2022-04-02 13:58:26 · 6475 阅读 · 0 评论 -
STM32入门笔记(02):MPU6050、MPU9250、ICM20948及姿态解算(SPL库函数版)
目录MPU6050什么是MPU6050?MPU6050的特点MPU6050框图MPU6050初始化MPU6050寄存器电源管理寄存器1(0X6B)陀螺仪配置寄存器(0X1B)加速度传感器配置寄存器(0X1C)FIFO使能寄存器(0X23)陀螺仪采样率分频寄存器(0X19)配置寄存器(0X1A)电源管理寄存器2(0X6C)加速度传感器数据输出寄存器(0X3B~0X40)陀螺仪数据输出寄存器(0X43~0X48)温度传感器数据输出寄存器(0X41~0X42)DMP使用介绍硬件连接软件设计MPU6050驱动代码D原创 2022-03-30 17:18:59 · 21856 阅读 · 5 评论 -
STM32入门笔记(02):F103C8T6 舵机PWM控制实验(SPL库函数版)
舵机的结构舵机简单的说就是集成了直流电机、 电机控制器和减速器等, 并封装在一个便于安装的外壳里的伺服单元。 能够利用简单的输入信号比较精确的转动给定角度的电机系统。 舵机安装了一个电位器(或其它角度传感器) 检测输出轴转动角度, 控制板根据电位器的信息能比较精确的控制和保持输出轴的角度。 这样的直流电机控制方式叫闭环控制, 所以舵机更准确的说是伺服马达, 英文 servo。主要有几个部分:外壳减速齿轮组电机电位器控制电路简单的工作原理是控制电路接收信号源的控制信号, 并驱动电机转动;原创 2022-03-29 17:34:57 · 4514 阅读 · 2 评论 -
STM32入门笔记(02):IIC 通信之SSD1036驱动0.96OLED液晶屏幕(SPL库函数版)
STM32入门笔记(02):AFIO复用端口与重映射 、NVIC中断优先级管理、外部中断、串口通信及串口实验(SPL库函数版)Micro:bit UART SPI IIC的详解及三者的区别和联系IIC(Inter Integrated Circuit)两根线,一个时钟线SCL和一个数据线SDA。只有一根数据线,所以是半双工通信。接线不难,而且两根线上也可以挂很多设备(每个设备的IIC地址不同),数据协议比较麻烦。I2C物理层的特点MCU作为主机,通过I2C协议控制触摸屏、传感器和EE..原创 2022-03-22 18:06:55 · 6297 阅读 · 0 评论 -
STM32入门笔记(03):系统时钟控制 RCC (STM32CubeMx 初始化配置)
目的/起源: B站@立邦大侠 的在视频里面提到,他用STM32CubeMx 更清晰地进行STM32系统时钟配置以及时钟架构。STM32 开发流程 : 芯片选型 - 原理图设计 - PCBlayout - 编写程序芯片选型什么是附带DSP和FPU?DSP:数字信号处理。注意:STM32单片机对数字信号处理,是通过内核的DSP指令集来提供支持的。FPU: 浮点运算单元。HAL库 新建工程模板方式:1、手动移植,参考SPL标准库的新建工程模板template2、STM32CubeMx工具原创 2022-03-22 09:20:15 · 1621 阅读 · 0 评论 -
STM32入门笔记(02): ADC(SPL库函数版)(1)
目录ADC 常用的库函数ADC 实验硬件设计实验步骤参考资料ADC ,即 Analog-to-Digital Converter 的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。STM32F4x ADC特点:STM32F40x大容量芯片带3个ADC控制器:其中144脚的芯片因为带PF脚,所以多8个通道,为24个外部通道。小于144脚芯片只有16个外部通道。STM32F40x原创 2022-03-18 18:06:42 · 5950 阅读 · 1 评论 -
STM32入门笔记(02):麦克纳姆轮、TB6612电机驱动、PID电机控制和编码器学习记录
麦克纳姆轮麦克纳姆轮(Mecanum Wheel),又称为艾隆轮(Ilon Wheel)。其由轮毂和固定在外周的许多小辊子构成,轮轴和辊轴之间的夹角通常为45°每个轮子具有三个自由度,分别是绕轮轴转动,沿垂直于与地面接触的辊子的辊轴方向移动,绕轮子和地面的接触点转动。根据机械原理,机构的原动件数应该等于机构的自由度,因此,若要实现三个自由度的控制,则应该有三个独立的输入。而每个麦克纳姆轮可以看作一个原动件,因此,若要实现平面3 个自由度的控制,就应该至少有 3 个麦克纳姆轮。也就是说,理论上只要原创 2022-03-15 16:05:36 · 43892 阅读 · 32 评论 -
单片机 C 语言基础(位操作、#define宏定义#ifdef条件编译、extern外部变量声明、enum枚举、Union 联合体、static静态变量、const常量和u8u16u32)
1.位操作6种位操作运算符与 &口诀:有0出0,全1得1 (乘法)0xAA = 1010 10100xFF = 1111 11111010 1010 & 1111 1111 = 1010 1010GPIO->CRL &= 0xFF = 1010 1010或 |口诀:有1出1,全0得0(加法)1010 1010 | 1111 1111 = 1111 1111非 ~~ 1010 1010 = 0101 0101按位异或^口诀:值不一样为1,相同值为0原创 2022-03-14 11:02:04 · 6098 阅读 · 0 评论 -
STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)
PWM 简介编码器简介编码器是一种将角位移或者直线位移转换成一连串电数字脉冲的一种传感器。我们可以通过编码器测量电机转动的位移或者速度信息。编码器按照工作原理,可以分为增量式编码器和绝对式编码器,绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。我们常用的编码器为增量式编码器。从编码器检测原理上来分,还可以分为光学式、磁式、感应式、电容式。常见的是光电编码器(光学式)和霍尔编码器(磁式)。一般来说光电编码器是霍尔编码器精度的几十倍。原创 2022-03-10 17:19:13 · 8482 阅读 · 0 评论 -
STM32入门笔记(02):AFIO复用端口与重映射 、NVIC中断优先级管理、外部中断、串口通信及串口实验(SPL库函数版)
目录端口复用功能什么是端口复用?哪些端口引脚可以复用?复用端口初始化有3个步骤:在使用复用功能的是时候,最少要使能 2 个时钟:端口重映射什么是端口重映射?详细4个步骤为:NVIC 中断优先级管理什么是NVIC ?中断优先级分组抢占优先级 & 响应优先级区别:中断优先级设置中断优先级分组函数 NVIC_PriorityGroupConfig中断初始化函数 NVIC_Init总结参考资料端口复用功能什么是端口复用?STM32 有很多的内置外设,这些外设的外部引脚都是与 GPIO 复用的。也就是说原创 2022-03-08 17:23:16 · 4678 阅读 · 2 评论 -
STM32入门笔记(02): GPIO工作原理、 GPIO通用和AFIO复用功能 I/O(SPL库函数版)
目录1.GPIO库函数介绍2. 新建项目 - LED流水灯先导知识1.STM32 #学习笔记01#| STM32F407VET6 入门教程 *(主控原理图 程序下载 固件库 新建工程文件)按照之前新建工程模板的教程,新添加【SYSTEM】目录。在 MDK 中添加 文件进SYSTEM 后,设置头文件路径。STM32F4xx 添加【SYSTEM】目录时编译报错 :..\SYSTEM\usart\usart.c(53): error: #20: identifier "RCC_APB2Perip原创 2022-03-06 18:36:51 · 5246 阅读 · 3 评论 -
STM32入门笔记(01):4种开发方式及STM32CubeIDE HAL库
STM32的开发主要指的是通过程序实现功能,ST官方提供的开发方式来说从远及近分别是:直接读写寄存器标准外设驱动库 SPL硬件抽象层库 HAL库底层库 LL库四种开发方式各有优缺点,可以参考ST官方的测试与说明:直接读写寄存器 开发是最慢的,可移植性最差,基本不推荐使用,只有个别对时间或是内存要求特别高、或者在写操作系统调度器时才需要直接读写寄存器;标准外设驱动库 是ST最开始提供的库(国内的教程也很多是依据题库出的),现在已经被ST放弃了;HAL库 和 LL库 是近几年推出的库,结合转载 2022-03-04 21:28:07 · 1765 阅读 · 0 评论 -
STM32入门笔记(02):MDK Keil5 开发环境搭建及新建工程模板教程(SPL库函数版)
Keil MDK µVision 5 下载安装及破解教程 STM32系列产品命名规则原理图USB-Hub_四路USB集线器实物详解主板详解原创 2022-03-04 15:55:47 · 8689 阅读 · 1 评论