自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FreeRTOS优先级继承和递归锁

【代码】FreeRTOS优先级继承和递归锁。

2025-09-22 19:16:50 330

原创 在FreeRTOS中各类任务之间通信方法的对比

能实现同步、互斥的内核方法有:任务通知(task notification)、队列(queue)、事件组(event group)、信号量(semaphoe)、互斥量(mutex)。这些内核对象五花八门,记不住怎么办?我也记不住,通过对比的方法来区分它们。它们都有类似的操作方法:获取/释放、阻塞/唤醒、超时。转载自韦东山RTOS教程。

2025-09-22 14:29:51 402

原创 FreeRTOS任务管理与调度

3.如果有多个相同优先级的任务,那么会先运行最后创建的那个任务。6.如果有相同优先级的三个任务123正在运行,此时在任务1中创建一个更高优先级的任务4,就会打断任务1,立刻运行任务4,当任务4运行结束之后会运行打断之前的下一个任务,被打断的任务不会继续运行。5.调度就是在tick中断的时候从优先级高到底遍历任务就绪列表,找到第一个非空的List,把pxCurrentTCB指向下一个任务,然后启动它。4.相同优先级的任务会通过链表将该优先级任务的任务控制块连接起来。2.最高优先级的任务先运行。

2025-09-21 17:46:00 221

原创 STM32计算步进电机转速

化简得到 ARR = (定时器时钟频率 * T) / (转速 * 6 * x * (PSC + 1)) - 1。所以 ARR = (定时器时钟频率/(转速/(60/((360/T)*x))*PSC+1))-1。输出频率 = 定时器时钟频率 / [(PSC + 1) × (ARR + 1)]频率 = 转速/(60/((360/T)*x))转速 = 频率 * 60 /((360/T)*x)PSC固定设置为72-1。

2025-09-20 18:15:31 318

原创 FreeRTOS中关于堆栈的理解

2025-09-18 15:14:56 146

原创 关于步进电机知识的个人理解

步进电机又叫做脉冲电机,即给一个脉冲就转动一个角度。常见的步进电机为两相四线,间隔的给两相通电,步进电机就可以转动。

2025-09-13 16:40:09 252

原创 直流电机PID调参技巧

Kd:太大会出现振荡,调节PD时,可以将Kp参数给大一点也没关系,超调可以用Kd来调节,但是不能振荡,如果出现振荡,要减小Kp。Kp:不断改变目标值观察实际值,然后增大Kp,知道实际值开始抖动,然后适当减小Kp让抖动消失,此时Kp就比较适合。PS:调参时,学会取舍,参数越响应快但是抖动振荡越严重,参数小响应慢但是动作平滑。Ki:看消除稳态误差的速度满不满意,不满意就加大Ki,但是不能够出现大幅度超调。

2025-09-11 10:46:59 248

原创 STM32Hex文件和Bin文件的区别

bin文件不带地址信息,因此下载的时候需要指定下载地址。 hex文件自带地址信息,直接点击下载自己会找到要下载到的地址(默认0x0800 0000)。

2024-11-21 20:16:53 214

原创 STM32串口广播一主多从

使用一个STM32通过一个串口广播的方式控制多个STM32。

2024-11-15 21:02:50 709

原创 树莓派配置GPIO串口与电脑通信

如果想使用稳定可靠的硬件串口,就要将树莓派的硬件串口与mini串口默认映射对换。而这个需求官方也考虑到了,在系统中放了一个实现这个功能的文件—stretch版本系统中的文件为/boot/overlays/pi3-miniuart-bt.dtbo。然后ctrl+s进行写入保存,不修改文件名称,直接回车即可完成写入,最后ctrl+x退出该文件。然后ctrl+s进行写入保存,不修改文件名称,直接回车即可完成写入,最后ctrl+x退出该文件。serial0(GPIO串口)默认使用的是ttyS0(mini串口);

2024-11-13 20:57:40 744

原创 步进电机位置闭环(位置式PID)

步进电机实现位置闭环可以防止步进电机出现丢步问题。本实验移植了野火电机开发指南的步进电机闭环代码。

2024-11-13 12:23:22 1285 1

原创 野火PID调试助手由HAL库移植到标准库

野火PID上位机通过串口与开发板相关联,通过特定的协议,可以同步上位机与下位机的指令与 数据。可以通过生成曲线图观察PID结果,方便用户调试。官方给的例程是HAL库的,现移植到标准库使用。配置完成后,在main.c初始化,在while里面调用接收。PID调试还需在中断里面调用发送实际值至上位机。需要注意的是,串口波特率不能低于9600,要不然调试助手就会不显示图像。其中,protocol.c需要修改的地方只有下面两个函数。

2024-11-06 10:36:58 907 1

原创 STM32定时器输出比较翻转模式输出PWM

该模式特点是定时器计数值每达到ARR就进行一次电平翻转,只需在中断函数里对ARR值进行修改即可改变PWM频率,不过该模式输出的PWM占空比始终是50%。此模式常用于步进电机加减速、步进电机闭环控制,可以在定时器运行时修改CCR值改变脉冲频率。也可实现定时器4个通道输出不同频率的PWM。重点是将PWM模式配置为:TIM_OCMode_Toggle模式。我只配置了定时器2的通道1。可以根据需求自行增加其他通道。

2024-10-25 20:26:44 1603 2

原创 STM32主从定时器输出个数、频率可调的脉冲

其中/TIM_SelectInputTrigger(TIM1, TIM_TS_ITR2);1)利用定时中断输出脉冲,但是间隔的延时会影响其他主程序的进程,当控制多个电机的时候就非常不可取;2)利用PWM脉宽调制,并通过主从定时器进行设定,好处是不占用主程序时钟,且能精准控制;ARR的值最高只能是65535,所以这种方法最多只能输出65535个脉冲。

2024-10-23 16:13:45 2022

原创 TMC2209堵转检测配置详细教程

通用寄存器主要是配置第0和第1位,第1位要给1,第0位根据自己的原理图配置。我的要配置0;这里需要发送。

2024-10-07 19:41:29 3389 4

原创 树莓派分辨率更改

2024-10-02 16:37:44 519

原创 树莓派配置Qt+OpenCV

设置 cmake 参数,安装目录默认各部分分别安装在 /usr/local/ 路径下的 include、bin、lib 三个文件夹下。先在电脑下载opencv-python 和 opencv-contrib-python 库,再传输到树莓派进行编译;cp37表示支持python3.7,armv7l指树莓派系统版本。将这两个源码下载完成后,传输到树莓派新建的文件夹里面。保存重启,即可通过 OpenCV 读取摄像头使用。进入解压后的 opencv 文件夹。选择 Yes ,即打开摄像头功能。

2024-09-21 12:28:46 1476

原创 TMC2209模块开启无限位归零

此步发送数据此处发送数据此处发送数据此处发送数据 05 00 C0 00 00 00 40 83。

2024-08-24 18:20:51 2625 4

原创 使用uart串口配置TMC2209模块

通过串口助手配置TMC2209的寄存器实现转速,方向,细分数等寄存器设置。最大细分可达256。

2024-08-23 20:06:27 8465 2

原创 树莓派Qt调用摄像头报错记录(未解决)

【代码】树莓派Qt调用摄像头报错记录(未解决)

2024-08-17 17:36:19 523

原创 树莓派Qt使用摄像头报错

报错defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"

2024-08-17 17:26:23 347 2

原创 Windows系统Qt串口助手移植到树莓派运行

这一步可能会报错ERROR: Unknown module(s) in QT: serialport multimedia multimediawidgets。使用两个ch340将树莓派和电脑串口助手连接,相互发送数据。在树莓派工程目录下打开可执行文件即可。解决方法:安装缺失的依赖模块。

2024-08-17 02:03:56 384

原创 2024年树莓派VNC更改分辨率

将Composite关掉,重启树莓派,完成VNC分辨率修改。选择所需分辨率(一般都是1080x1920)再次重启树莓派,再次进入这个界面。重启树莓派,再次进入该界面。使能Composite。

2024-08-13 23:38:58 2490 5

原创 2024年树莓派新镜像安装Qt方法

本次使用的树莓派镜像。

2024-08-13 22:55:41 1343

原创 2024新版树莓派镜像安装python3.7.3

可能会出现报错:ModuleNotFoundError: No module named '_ctypes'

2024-08-07 16:47:43 1020

原创 将USB摄像头画面显示到Qt界面

在.h文件中添加摄像头所用到的头文件和两个按钮的槽函数。摄像头显示窗口使用Qwidget。查找摄像头,并将画面显示到窗口。

2024-08-04 17:56:14 1004

原创 Qt串口助手滑块与STM32进行通信,控制步进电机正反转以及转动固定距离

其实这6个转换未槽函数的实现就是对应着QAbstractSlider的6个信号量触发函数。

2024-08-04 17:27:35 1173 1

原创 树莓派换源教程

使用下面命令查找树莓派版本bullseye可以理解为树莓派的系统代号(10,11,12都不同,一定要看好自己系统是什么版本)

2024-07-28 16:10:42 5124 2

原创 Qt串口助手 实现文本收发和Hex收发

实现串口调试助手,可配置通信关键参数,包括波特率、停止位、数据位、校验位;可以以16进制、ASCII码收发数据,显示时间戳、自动换行、自动发送等功能。

2024-07-21 19:14:30 1126

原创 Qt槽函数使用Lambda表达式

目的是简化编程工作。Lambda表达式的基本构成分为四个部分:[局部变量获取列表]、(函数参数)、函数额外属性设置opt、函数返回值->retype、{函数主体}

2024-07-19 13:58:29 731

原创 STM32串口提取所需数据

从STM32接收到的数据中提取我们所需的数据,极大的便利了串口控制的流程。如:从“Z轴移动10mm”中,将10提取出来,并赋值给其他变量。

2024-07-12 21:23:44 1239 1

原创 STM32串口收发HEX、文本数据包

STM32收发数据包只需在数据的左右分别发送包头包尾,当STM32接收到包头包尾时即可判断数据是否接收完毕,并提取包头包尾之间的数据进行处理。在串口接收中断中置状态机,即可过滤不需要的数据。建立数组,将要发送和接收到的数据存起来。STM32发送数组函数。

2024-06-04 20:42:33 382

原创 STM32 硬件IIC读取MPU6050

MPU6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合,可进一步得到姿态角,常应用于平衡车、飞行器等需要检测自身姿态的场景3轴加速度计(Accelerometer):测量X、Y、Z轴的加速度3轴陀螺仪传感器(Gyroscope):测量X、Y、Z轴的角速度STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担 支持多主机模型支持7位/10位地址模式。

2024-05-31 12:07:55 2714 2

原创 STM32 SPI获取MT6816磁编码器绝对角度

这里我们只读取角度数据,不使用弱磁报警和奇偶校验位、超速报警。

2024-05-24 20:54:30 10261 8

原创 树莓派打开摄像头

选项可改变保存图像的分辨率。会短暂显示一个预览窗口,其中包含所连接摄像头的视频画面。选项传递一个可选的持续时间(以毫秒为单位)。选项可更改预览窗口的显示时间。

2024-05-21 20:50:13 1494 1

原创 Qt自定义信号和槽带参数发生重载的解决方法

QString类型变量出现“”的解决方法。

2024-04-08 21:12:17 300

原创 Qt自定义信号和槽

在窗口中声明一个公共方法下课,这个方法的调用会触发老师饿了这个信号,而响应槽函数学生请客。定义场景:下课了,老师跟同学说肚子饿了(信号),学生请老师吃饭(槽)首先定义一个学生类和老师类:(新建.cpp和.h文件)老师类中声明信号 饿了 hungry。学生类中声明槽 请客treat。学生响应了槽函数,并且打印信息。

2024-04-08 20:47:30 280

原创 Qt信号与槽

但是Qt对象不会无故收到某个信号,要想让一个对象收到另一个对象发出的信号,这时候需要建立连接(connect)当某个事件发生后,如某个按钮被点击了一下,它就会发出一个被点击的信号(signal)。第一行是创建一个关闭按钮,这个之前已经学过,第二行就是核心了,也就是信号槽的使用方式。4)slot:接收对象在接收到信号之后所需要调用的函数(槽函数)某个对象接收到这个信号之后,就会做一些相关的处理动作(称为槽slot)。1)sender:信号发送者。2)signal:信号。槽: 响应信号的动作。

2024-04-07 00:11:37 267

原创 Qt按钮控件

【代码】Qt按钮控件。

2024-04-06 15:51:07 168 1

原创 QtCreator常用快捷键

整行移动代码 ctrl + shift + ↑或↓。跳到符号定义 F2 或者ctrl + 鼠标点击。帮助文档 F1 ,点击F1两次跳到帮助界面。同名之间的.h和.cpp文件跳转 F4。字体缩放 ctrl + 鼠标滚轮。自动对齐 ctrl + i。运行 ctrl +R。编译 ctrl +B。

2024-04-06 14:58:36 325 1

空空如也

空空如也

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

TA关注的人

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