自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 CubeMX+VScode开发STM32-移植Free RTOS

之后找到FreeRTOSv202406.04-LTS\FreeRTOS-LTS\FreeRTOS\FreeRTOS-Kernel\portable文件,这里使用的是GCC编译器所以此处选择GCC文件,进入之后由于本次移植使用的是STM32F103C8T6开发板使用的是Cotex-M3的芯片所以选择ARM-CM3,之后将文件夹中的port.c和portmacro.h文件分别复制粘贴到FreeRTOS的Inc和Src文件中。这里的port.c和heap_4是之后粘贴的这里不用管。

2026-06-04 22:05:35 495

原创 关于ESP32烧录时芯片版本不对应问题解决

A fatal error occurred: bootloader/bootloader.bin requires chip revision in range [v3.1 - v3.99] (this chip is revision v1.3).No changes to save (for 'G:/ESP-AI/xiaozhi-esp32-main-p4/sdkconfig')ESP烧录版本问题

2026-05-31 09:41:16 204

原创 步进电机转速影响因素

调频率:改变速度快慢(软件指令)。调细分: 用速度交换平滑度和精度。升电压: 增强线圈的电流充放电速度,决定电机最高能飙到多快。加减速: 配合机械惯性,给电机一个“缓冲踩油门”的过程,是让理论高速变成现实的唯一软件手段。%5Ctheta。

2026-05-21 19:08:13 371

原创 步进电机“嗡嗡”堵转和不转原因分析(A4988+STM32)

控制速度靠“频率”,启动停止靠“曲线(加减速)”。硬件定时器发脉冲,占空比雷打不动锁定 50%。(50% 占空比能保证高电平和低电平的时间各占一半,在任何频率下都能给驱动器最完美的上升沿触发信号)。

2026-05-21 18:37:07 238

原创 关于ESP32JTAG烧录和调试时OPENOCD服务启动失败的问题解决

降级之后的驱动,是由哪里来的还不确定,是否是在安装ESP-IDF的时候自动装到系统的,还不确定。之后就可以在设备管理器中看到改变后的驱动情况了。如下图是设备管理器中显示的。之后就可以烧录成功了。

2026-05-05 18:42:50 158

原创 STM32-HAL-定时器-编码器实验

如下图所示就是定时器从模式控制器中的从机的编码器模式总共有三种编码器就是一种传感器,一般用在电机上一般用来测量电机的角度和转速编码器原理如下图是一种增量式AB编码器如下图中这种编码器有五个引脚其中A、B这两个引脚负责向外输出测量结果如果将编码器拆开会发现其内部结构如下图所示:其中A、B两个引脚各自连接一个触点,引脚C连接着金属片,当旋转编码器时中间的金属片会跟着旋转,所以会看到A、B连接的触电在金属片上不断地接触脱离。

2026-05-01 22:00:49 480

原创 STM-HAL-定时器-从模式控制器

如下图所示左上角就是定时器的从模式控制器如下图所示是从模式控制器的构造那么该如何使用从模式控制器呢如下图所示:TI1FP1就是通道1的直接;TI2FP2就是通道2的直接同理TI1FP2就是通道1的间接,TI2FP1就是通道2的间接(通道2输入之后到通道1使用)TI1代表信号从通道1输入,TI2代表信号从通道2输入p代表极性选择(捕获上升沿或者下降沿);最后的数字y就代表信号要到哪个通道去首先输入信号从通道1进入,通过TI1FP1来捕获信号的上升沿,通过TI2FP2来捕获信号的下降沿。

2026-05-01 19:12:34 321

原创 STM32-HAL-定时器-输入捕获

最左侧有一个外部信号,它通过通道1输入到定时器中,之后让通道1工作在输入捕获模式下,注意观察左边信号有一个信号的变化,计数器CNT会对这个变化的信号进行拍照保存到CCR1当中,然后再将CCR1寄存器当中的值读取出来,这样就可以得知外部信号在什么时候发生过什么变化。使用输入捕获的原理就可以对输入信号的时间参数进行测量,比如要测一段脉冲的宽度,一个脉冲有上升沿和下降沿两个边沿,之后将这段脉冲同时输入给通道1和通道2,让通道1捕获脉冲的上升沿,通道2捕获脉冲的下降沿。输入捕获:捕获信号变化的时间节点,并保存。

2026-04-29 20:44:32 658

原创 STM32-HAL-定时器-输出比较

比如下图中是一个H桥电路,由四个MOS管组成,只看左边的两个,这两个MOS是交替工作的,上面的导通下面的就断开,下面的导通上面的就断开,但是两个MOS管不能同时导通,因为同时导通的话,这个电路就短路了。需要先获取当前的时间(以ms为单位),计算占空比,之后获取ARR寄存器的值,之后计算CCR的值,将计算出来的CCR的值写入CCR寄存器中,之后就可以看到呼吸灯的效果了。如下图所示两路信号正常形况下都取正极性(即节点2的波形),CH1输出的是正常的PWM波,而下边的一路经过反向器输出的是和CH1互补的输出。

2026-04-28 19:43:08 402

原创 STM32-HAL-定时器-时基单元

定时器就像单片机里面的手表,所有和时间有关的操作都需要它。定时器(Timer)也是时钟树上的外设(树叶)之一打个比方就是:一快石英手表,将其拆开内部有一个银白色的圆柱体,这是一颗频率为32.768kHz的石英晶振,如果将定时器比作手表,那么石英晶振就是时钟树中的时钟来源,石英晶振为手表提供信号来源,手表则用来看时间;同样的时钟源为定时器提供信号来源,定时器则用来执行单片机内部和时间相关的操作。最后用手表来总结定时器的时基单元部分如果想让手表实现每转5圈响铃一次的效果。

2026-04-26 19:11:10 181

原创 STM32-HAL-中断

理想情况下每接收一个字节就读取一个字节,如发送1、2、3、4、5、五个数据,但是当数据没有被及时读取时,一级缓冲区内的数据就会被覆盖,这是就只会接收到数据1和数据5。在主函数中写闪灯的代码,在中断响应函数中写串口收发数据的的代码,正常的情况下正常执行闪灯的程序,假设在闪灯的过程中单片机收到了数据,那么此时闪灯程序会被打断,单片机直接调用事先写好的中断响应函数,每通过串口收到一个数据就触发一次中断调用一次中断响应函数,然后在中断响应函数中及时地把数据读出并对数据进行处理,这样就不用再担心数据丢失的问题了。

2026-04-24 21:41:36 578

原创 STM32-自制延时函数(标准库)

在STM32以往的使用中使用的延迟函数Delay_ms()使用系统滴答定时器Sys Tick来实现的系统滴答定时器Sys Tick是位于Cortex-M3内核里面的一个模块。

2025-12-06 14:53:21 322

原创 STM32-标准库定时器

定时器是单片机上的片上外设之一定时器TIM1是挂载在APB2总线上,而定时器TIM2~4是挂载在APB1总线上的我们可以简单地把定时器理解为手表,在单片机内部所有与时间有关的操作及几乎都会用到定时器高级定时器通用定时器和基本定时器。从高级定时器到通用定时器再到基本定时器功能是不断阉割的。在STM32F1系列的单片机最多有14个定时器,其中TIM1和TIM8是高级定时器,TIM6和TIM7是基本定时器,剩下的就是同通用定时器,在STM32F103C8T6这款单片机中仅有TIM1~4这四个定时器。

2025-12-06 12:34:10 900

原创 STM32-时钟树(标准库)

可以是8,12,16,20,36,72等。见上图中:将时钟比作人的心跳,将时钟系统比做人的血液循环系统,产生心跳的地方就是单片机的心脏,产生的心跳会通过分叉输送给片上外设,将这样的结构类似于一棵树所以可以将单排年纪的时钟系统画成右边的一颗时钟树。左边的大树((高速树)的时钟频率较高一般都是几十MHz,时钟源都是HSE/HSI,高速时钟源 右边的小树(低速树)时钟频率较低一般都是几十KHz,时钟源都是LSE/LSI,低速时钟源。如上图所示,初始状态下时钟树的时钟配置(看绿色的线条配置)

2025-12-05 18:47:27 1212

原创 STM32Cube MX-I2C-2

实践项:点亮OLED屏幕。

2025-11-26 21:55:25 33

原创 STM32Cube MX-I2C-1

I2C总线通信摘要:I2C采用双线制(SCL时钟线、SDA数据线)实现主从设备通信,通过开漏输出和上拉电阻实现"线与"逻辑。通信过程包含起始位(SCL高时SDA下降沿)、7位地址寻址(含R/W方向位)、数据传输(字节单位,每字节需ACK应答)和停止位(SCL高时SDA上升沿)四个阶段。快速模式支持400kbps速率,时钟占空比可调(2:1或16:9)。NAK表示不应答,与停止位(结束通信)功能不同。典型应用需接4.7kΩ上拉电阻。

2025-11-25 21:04:27 645

原创 STM32-HAL-UART

USART串口通信采用数据帧传输,包含起始位、数据位和停止位。起始位标志传输开始,数据位以二进制形式传输(0为低电压,1为高电压),停止位标志结束。支持8/9位数据位和0.5-2位停止位配置,可选择奇偶校验。波特率决定传输速度,常用配置为115200波特率、8位数据位、无校验、1位停止位。同步模式通过时钟线(CK)实现收发同步。发送数据时需翻转二进制位顺序(低位在前),接收数据可设置超时等待。串口广泛应用于微控制器与设备间的数据传输。

2025-11-24 13:21:38 644

原创 STM32-HAL-GPIO

摘要:本文介绍了GPIO引脚的三种功能模式(通用、复用、重映射)及其八种工作模式(4种输出、4种输入)。重点对比了推挽和开漏输出模式的工作原理:推挽模式通过MOS管交替导通输出高低电平,而开漏模式仅能输出低电平或高阻态。文章还解释了IO最大输出速度与电压切换时间的关系,建议根据实际需求选择最低速配置。最后提及了CubeMX配置LED闪烁时的引脚模式选择和HAL库函数编写的注意事项。

2025-11-21 17:59:04 62

原创 STM32-标准库-定时器-PWM参数测试

在上图中对于从模式的控制器的应用为:将TI1FP1作为TRGI的信号来源,设置从模式控制器的TRGI为复位模式(即:通过TRGI输入一个上升沿之后,定时器会对计数器CNT进行清零。先由TIM3产生一个待测的PWM信号,再由从模式+输入捕获测量PWM参数。cc2通道捕获下降沿,所以CCR1中储存的数据是PWM的高电平时间。而cc1通道捕获上升沿,所以CCR1中储存的数据是PWM的周期。时基单元-->初始化输入捕获-->初始化从模式控制器。PWM占空比=PWM的高电平时间/PWM的周期。:使能CCR的预加载。

2025-11-20 18:51:59 349

原创 STM32定时器从模式控制器

TRGI是定时器的触发输入信号。(在从模式中定时器是作为被控对象)其功能是通过接受信号来控制时基单元来做相应的动作,例如:定时器的开关,计数器(CNT)的递增,递减或清零外部引脚(如TIMx_ETR)其他定时器的TRGO输出内部触发源(如ADC转换完成)复位模式(Reset Mode):TRGI上升沿复位计数器并重新开始计数门控模式(Gated Mode):TRGI电平控制计数器启停触发模式(Trigger Mode):TRGI上升沿启动计数器TRGO是定时器的触发输出信号。

2025-11-19 22:17:53 825

3235792607ATK-USB-CH340 USB转换器模块用户手册_V1.0.pdf

3235792607ATK-USB-CH340 USB转换器模块用户手册_V1.0.pdf

2025-11-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除