- 博客(16)
- 收藏
- 关注
原创 FreeRTOS系统 移植至STM32F4
FreeRTOS是一款专为嵌入式设备设计的开源实时操作系统,以轻量化、高可移植性和实时多任务调度为核心优势,适用于资源受限的微控制器(如ARM Cortex-M、RISC-V)。其内核支持抢占式任务调度、任务间通信(队列、信号量)及动态内存管理,通过Tickless模式优化功耗,广泛应用于物联网终端、工业控制和汽车电子等领域。下载好后解压可以看到如下内容Demo:官方给的工程历程Source: 文件夹里面包含的是FreeRTOS内核的源代码,我们移植FreeRTOS的时候就需要这部分源代码。
2025-05-13 10:24:35
868
原创 can总线通信协议
控制器局域网(Controller Area Network,CAN)是一种广泛应用于实时通信的串行总线协议,尤其在汽车电子和工业自动化领域。CAN通信协议是异步、半双工,串行通信协议。串行:数据按位发送半双工:可双向通信,但不能同时异步:无共享同步的时钟,依赖数据帧同步1.核心特点:多主结构:所有节点均可主动发送数据,通过仲裁机制避免冲突。非破坏性仲裁: 通过标识符(ID)优先级竞争总线使用权,低优先级节点主动退出发送高可靠性:错误检测:包含CRC校验、帧检查、ACK确认等机制。
2025-04-30 12:46:55
412
原创 SPI通信协议(STM32)
SPI(Serial Peripheral Interface)是一种同步、全双工、串行通信协议,广泛用于短距离芯片间通信,如微控制器与外设(传感器、存储器等)的连接。SPI跟iiC一样,同样是一主多从模式全双工:支持同时发送和接收数据。同步:有共享的时钟信号串行:双向数据串行发送和接收线,MOSIMISO1四线制:MOSI:主设备发送数据从设备接收数据MISO:从设备发送数据主设备接收数据SCLK:时钟信号线,由主设备产生SS/CS:从设备片选信号线。
2025-04-26 11:36:38
395
原创 IIC通信协议(STM32)
IIC(II(Inter-Integrated Circuit,I²C))是一种广泛使用的同步、半双工、串行通信协议,由飞利浦公司开发,主要特点是短距离,低速设备见得通信。支持多主多从架构,通过地址机制管理设备。串行:双向数据串行发送,SDA同步步:有共享的时钟信号,SCL半双工:支持两台设备和多台设备之间的相互通讯,不支持同时收发数据SDA:双向传输数据线SCL:产生时序的时钟线。
2025-04-26 02:00:00
1556
原创 USART串口通信协议(STM32)
UART:(Universal Asynchronous Receiver/Transmitter,通用异步收发器),异步、串行、全双工通信协议串行:数据串行发送异步:无共享的时钟信号全双工:支持同时收发数据点对点短距离通信:通常用于两个短距离的设备之间。
2025-04-25 17:27:50
323
原创 树莓派 ubuntu镜像备份(压缩裁剪法)
镜像压缩存储卡:SD(需要这里我用64G卡,需要>=64 SD卡)& U盘(需要>=64G),为什么需要>=64,备份原理是全盘复制成镜像然后再裁剪未使用的空间。需要镜像的目标源:SD卡(树莓派系统文件SD卡,我用的64G的)将pishrink.sh脚本移动至/usr/local/bin。如果你想要镜像小一点的话,输入下面的指令进行裁剪即可。注意,下面就是你需要挂载的存储设备(sda)你可以输入ls /dev/sda*进行查询。输入再终端输入,查询我们插入卡的设备号。输入下面的git命令进行下载。
2025-04-11 21:48:03
377
原创 ROS usb_cam功能包安装问题
如果不下它编译好的二进制功能包,去官网载下来usb_cam功能包,一直出现编译异常,很奇怪。在安装usb_cam是一直出现如下问题,我以为是网络的问题,挂了梯子还是如此。操作系统:unbuntu 20.04。最后再重新运行这句指令,即可完成安转。ROS版本:noetic。于是我想起了切换ros源。采用设备:树莓派4B。
2025-04-07 17:54:04
327
原创 linux环境变量
profile:如果 .bash_profile 和 .bash_login 都不存在,则会尝试加载此文件。(3).进程级:主要是在进程中通过setenv函数中设计环境变量,这个环境变量仅对该进程有效,进程结束,进程所设计环境生命周期也结束。文件中设置一些全局的环境变量和启动脚本,而在.bashrc 文件中设置一些特定于 Bash 的配置和个人设置。.bash_profile:这是在登录时加载的主要文件。通常情况下,用户可以在.bash_profile、.bash_login 或 .profile。
2025-03-23 22:44:05
463
原创 ubuntu启动找不到网卡
Ubuntu下方设备连接显示绿色,正常,但是很奇怪,ubuntu启动后,确未扫描出来,问题:当ubuntu启动找不到网卡,但是ubuntu下方显示网络连接正常,如下图,输入ipconfig也查询不到网卡。解决:(重启网络管理服务)执行下面的指令进行重启,
2025-03-23 22:33:17
580
原创 LINUX 实现socket与多线程结合与多个TCP client实现双向通信
上一节中,我们编写了socket单播1v1的双向通讯,但socket本身可以是1v多的,而我们的思路主要是通过主线程管理连接socket,并创建多线线程对单个连接进行单独处理,这样我们实现了多个socket连接双向通讯问题。socket 在创建线程时会将参数client_sock(accept返回的id)传入线程,在线程中会对malloc申请的空间进行释放。1.server.c 主线处理连接,创建线程与对应客服端id进行双向通信。3.client_2.c 发送并接收(其实与client_1.c一样的)
2024-12-29 17:32:12
455
原创 Linux socket实现双向通信
1.实现socket的server和client之间的相互通信(1s相互通讯一次)2.客服端断开自动重连。此次历程代码主要功能。
2024-12-27 16:01:24
548
原创 ROS1 roscore及其他相关指令出现报错
环境隔离,这个需要自己去研究,这里只更改python3版本的指向,如下。相关指令,今天运行时却发现了错误,很奇怪,我使用。时,居然报错,似乎还是语法上的错误,包括使用。我去查看我是否安装,发现我已经装了该环境。因为在开发过程中,我一直好几天未使用过。去查看的时候,却未显示没有该模块。接下来运行roscore,正常啦。版本,前两天装一些包时更新了。使用下面这个指令进行修改,写的,需要改变环境指向。
2024-12-20 17:37:48
384
原创 使用ESP32-CAM拍摄图片并上传至FTP服务器
代码可灵活的实现很多功能,例如你想要在某时间段拍摄几张图片,通过网络通讯协议去实现,例如Socket,MQTT、HTTP等,发送你想要拍摄一张图片,如何命名等,同时也可以通过板子之间的通讯协议去实现,例如采样Arduino、stm32与ESP32-CAM通过串口通讯协议实现图片拍摄和上传控制,也可以通过引脚去控制,使用ESP32-cam实时监测某个引脚,检测到低电平时,图片拍摄并上传,这个代码再开发还是挺灵活的,大家多交流,有问题评论区私信我,见即回。
2024-11-19 10:36:21
509
原创 FreeRTOS 任务控制块是如何保留上下文的
当任务切换发生时,FreeRTOS会将当前任务的堆栈指针保存到该任务的TCB中,并从下一个任务的TCB中恢复堆栈指针,而任务对应的TCB会被分配到堆区。在FreeRTOS中,任务切换时上下文的保存包括核心寄存器的状态,这些内容保存在每个任务的堆栈中,而堆栈指针(SP)则存储在任务控制块(TCB)中。//任务优先级,指定任务的优先级,0的优先级最低。//链表指针,指向下一个队列。恢复新任务上下文:从任务堆栈中恢复该任务的寄存器状态到CPU中,程序计数器(PC)被设置为任务执行中断时的指令地址,任务继续运行。
2024-10-14 20:13:03
874
原创 FreeRTOS Cortex M3/4架构芯片——寄存器组与存储篇
作用:在内核刚启动时,OS处于hander mode(也就是操作系统常说的内核态),OS的内核函数(例如异常中断函数、其他中断函数等其他内核函数)使用的是MSP堆栈指针,当芯片启动成功,且未产生任何异常,os自动切换为线程模式,堆栈值指针选为PSP。裸机中,当程序正在函数1时,此时调用到函数2,此时函数1会被装载在栈区,函数2会从ROM装载进寄存器中运行,装载时函数1的堆栈地址会储存在寄存器LR中,这样函数2运行结束时就能通过访问LR寄存器的指针,返回到函数1继续运行。而任务堆栈指针,只能指向任务堆栈。
2024-10-09 10:33:52
1594
原创 Yolov5 7.0 训练自己的模型
教程说明本教程不提供文档教程安装,但有视频教程,包括一些软件安装的安装包,该主要说明,从零开始收集数据集,到标注数据集,最后训练数据集以及一些工具的使用。主要分为了六个步骤,1.数据集的收集,2.数据集存放文件格式,3.标注数据集,4.数据集的划分,5.训练自己的yolov5模型,6.使用自己训练的模型进行目标识别,大体步骤就分为这些,步骤比较多,初学还是挺不容易的。在工程下创建weight文件夹用于存放训练好的模型,选择你刚训练好的模型文件,复制模型至weight,如下,我是改名了,你可以不用改名。
2024-10-02 09:47:08
1708
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人