- 博客(34)
- 收藏
- 关注
原创 使用Clion开发STM32(Dap调试)
之前写了一篇文章关于如何用VSCode配合插件开发STM32最近研究了如何使用Clion开发STM32。
2025-07-26 19:22:58
863
原创 麦克纳姆轮基本运动控制
如果要实现小车向右平移,让左前和右后轮向前转,左后和右前轮向后转,这时左边两个轮子的垂直摩檫力相互抵消,右边两个轮子的垂直摩檫力相互抵消,这时只剩下水平下左的摩檫力,这样就实现了小车向右平移,但是明明摩檫力是向左的,为什么小车却是向右平移呢?进行受力分析发现,此时轮子向前向后的摩檫力同样被抵消掉,只剩下向左的摩檫力,但是这是地面对轮子的摩檫力,而且是反过来的,实际上地面对轮子的摩檫力是向右的,这样就实现了小车向右平移。重新进行受力分析,其中下图中看到的左边的轮子其实是小车的右轮,右边的轮子是小车的左轮。
2025-07-01 15:45:11
265
原创 STM32作为主机识别鼠标键盘
然后又想了想,这还要连一个无线串口模块,也就是说键盘和小车之间需要一台主机才能进行通信控制,能不能直接将键盘连到单片机进行通信呢,USB好像可以实现,键盘与电脑连接时,电脑作为主机Host,键盘作为从机Slave,那单片机能不能作为主机,键盘作为从机呢,刚好板子上又引出了单片机的USB口,于是就去看了一下USB相关的内容,简单了解了一下。USB 鼠标键盘属于 USB HID 设备。然后又想,能不能用键盘来控制小车的移动,也就是遥控小车,然后发现XCOM可以读取键盘的值,只不过只能读取数字键值,不过也够了。
2025-07-01 15:44:00
663
原创 PID入门学习笔记
PID三部分含义:P(Proportional,比例项)当前误差的放大。控制器输出 ∝ 当前误差(设定值 - 实际值)。响应快,但容易产生超调。I(Integral,积分项)对误差随时间的累计求和。解决系统的稳态误差问题,让误差趋近于0。但积分太强会引起系统震荡或变慢。D(Derivative,微分项)对误差变化率的预测。抑制系统的震荡,提前制动。噪声敏感。对于简单的系统,例如风扇,只需要给一个指定的输出,让风扇转起来,档数越大,转速越快,不需要很精准的控制,因此只需要开环就行对于精度要求
2025-07-01 14:56:16
1022
原创 RT-Thread学习笔记(五)
RT-Thread 提供了一套简单的 I/O 设备模型框架,如下图所示,它位于硬件和应用程序之间,共分成三层,从上到下分别是 I/O 设备管理层、设备驱动框架层、设备驱动层,与Linux类似应用程序通过 I/O 设备管理接口获得正确的设备驱动,然后通过这个设备驱动与底层 I/O 硬件设备进行交互。I/O 设备管理层实现了对设备驱动程序的封装设备驱动框架层是对同类硬件设备驱动的抽象,将不同厂家的同类硬件设备驱动中相同的部分抽取出来,将不同部分留出接口,由驱动程序实现。
2025-04-27 13:23:28
1099
原创 RT-Thread学习笔记(四)
在一开始,线程1的入口函数先用一个延时阻塞,这时线程1被挂起,线程2被调度,但是此时的信号量2值为0,线程2获取不到信号量,因此线程2被挂起,等到线程1的延时结束,又回到线程1,此时线程1获取信号量1成功,执行相应的操作,然后释放信号量2,信号量1的值从1变为0,信号量2的值从0变为1,线程1执行完,又轮到线程2执行,此时信号量2值为1,因此线程2能够获取信号量2,对应的操作能够执行,线程2又释放信号量1,此时信号量1的值又变为1,信号量2的值又变为0,依次循环,就实现了信号的同步操作。
2025-04-26 20:15:24
731
原创 RT-Thread学习笔记(三)
如下图所示,系统当前tick值为20,在当前系统中已经创建并启动了三个定时器,分别是定时时间为50个tick的Timer1、100个tick的Timer2和500个tick的Timer3,这三个定时器分别加上系统当前时间 rt_tick=20,从小到大排序链接在 rt_timer_list 链表中,形成如图所示的定时器链表结构。(系统定时器)是 ARM Cortex-M 内核内置的一个 简单、专用的 24 位倒计时定时器,用于提供系统时基(如 1ms),通常用来驱动 RTOS 的节拍中断(tick)。
2025-04-22 12:37:37
935
原创 不带无线网卡的Linux开发板上网方法
在使用I.MX6ULL-MINI开发板学习Linux的时候,有时需要更新或者下载一些资源包,但是开发板本身是不带无线网卡或者WIFI芯片的,尝试使用网口连接笔记本,笔记本通过无线网卡连接WIFI,然后通过共享给开发板,即让笔记本实现一个软路由器,使开发板能够上网。
2025-04-19 22:22:45
393
原创 RT-Thread学习笔记(二)
线程管理的主要功能时对线程进行管理和调度,系统中存在两类线程,分别是系统线程和用户线程,系统线程是由 RT-Thread 内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器中删除。运行状态的线程具有CPU执行权,如果就绪态的线程优先级与运行状态的线程优先级相同,那么会使用时间片的方式轮询两个线程,如果就绪态的线程优先级高于运行态的线程,会直接打断当前运行的线程,抢占CPU控制权。线程是任务的载体,是 RTT 中最基本的调度单位。
2025-04-18 15:13:07
862
原创 Linux学习笔记(应用篇四)
tslib 是专门为触摸屏设备所开发的 Linux 应用层函数库,tslib 为触摸屏驱动和应用层之间的适配层,它把应用程序中读取触摸屏 struct input_event 类型数据(这是输入设备上报给应用层的原始数据)并进行解析的操作过程进行了封装,向使用者提供了封装好的 API 接口。上的一个概念,一个非负数的 ID(ID>=0)表示一个有效的触摸点,如果 ID 等于-1 表示该触摸点已经不存在、被移除了;ABS_MT_POSITION_X:X轴绝对位移坐标值。ABS_X: X 轴绝对位移坐标值。
2025-03-29 14:03:11
1068
原创 在Windows下VSCodeSSH远程登录到Ubuntu
”,这意味着你在使用 Remote-SSH 插件连接到远程主机时,VSCode 已经识别到你的远程平台是 Linux,并将这些信息保存到 VSCode 的设置中。首先要确保 Ubuntu 的 SSH 服务开启了,开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu。然后要求选择要更新的SSH配置文件,即Windows的SSH配置文件,我选择第一个。选择主机的系统,我要连接的是Ubuntu,所以选择Linux。打开文件,需要选择打开的目录,我选择。
2025-03-28 22:22:12
870
原创 I.MX6ULL 开发板上挂载NTFS格式 U 盘
NTFS-3G 是一个开源的 NTFS 驱动程序,允许 Linux 系统读写 NTFS 格式的磁盘。将ntfs依赖的动态库libntfs-3g.so.88.0.0拷到开发板 的/usr/lib/目录下。而且查看 ntfs-3g 目录下的文件,就只有include和lib两个,不太正常。将ntfs-g/bin目录下的文件全部拷贝到开发板的/usr/bin目录中。我使用的是闪迪的U盘,大小标称是 32G ,实际能用的只有 28G 左右。这是因为我在U盘的目录下卸载U盘,我现在就在U盘的目录下,所以卸载不了。
2025-03-28 21:33:24
1019
原创 Linux学习笔记(应用篇三)
开发板中所有的设备(对象)都会在体现出来,是 sysfs 文件系统中最重要的目录结构应用层想要对底层硬件进行操控,通常可以通过。
2025-03-26 21:54:08
897
原创 Linux学习笔记(应用篇二)
开发板的 SSH 服务器可能只支持 ssh-rsa 密钥,而你的客户端(Ubuntu 主机)可能已禁用该密钥算法。虽然现在设置是可以实现互ping了,但是我遇到的问题是每次重启开发板后,要手动重启网络服务开发板的IP地址才会改为我设置的静态IP。查看开发板的IP是169.254.26.65,与电脑网口不在同一个网段,无法通信,要修改开发板的静态IP。以太网适配器的IP是网口的IP,使用网线与开发板进行通信,现在默认是自动分配的地址,需要手动设置。再次在终端查看IP,可以看到以太网的已经改为我们设置的。
2025-03-25 23:26:01
1102
原创 Linux学习笔记(应用篇一)
本文章是入门篇的概念,有点零散,后续需要补充复习**inode(索引节点)**是 Linux 和 Unix 文件系统(如ext4、xfs)中的数据结构,用于存储文件的元信息(metadata),而不存储文件内容或文件名。文件类型(普通文件、目录、符号链接等)文件权限(rwx)所有者(UID)和组(GID)文件大小创建、修改、访问时间(ctime、mtime、atime)链接计数(有多少硬链接指向这个文件)数据块指针(指向文件数据所在的磁盘块)
2025-03-25 22:55:48
842
原创 使用VSCode开发STM32补充(Debug调试)
讲述了使用VSCode开发STM32的一种方法,但是没有讲如何进行。在菜单栏右边有个三角形的插件,点击绿色的三角形或者按。
2025-03-16 16:55:51
641
原创 将bin文件烧录到STM32
文件,这个文件也能转换成.bin文件,但是烧录进去芯片没反应,还是要先转换成。点击Program,左下角会显示状态,成功会显示。在Config中可以选择目标芯片的类型。文件,但是现在看起来有点麻烦了,使用。一般的Keil5工程编译后只会输出。到hex2bin所在的目录,然后打开。我讲述了如何在Keil5中输出。的,只需要把要转换的hex文件。看到如下输出信息说明转换成功。Program:直接编程烧录。就是在上方直接输入cmd。选择烧录的.bin文件。在Keil5点击锤子。打开终端有两种的方法。
2025-03-16 16:48:12
1888
原创 使用万用表检测芯片IO口好坏
在STC公司的Ai8系列芯片的数据手册中提到使用万用表检测芯片IO口好坏的方法,验证一下,顺便看看这个方法能不能用在其他芯片上。以下是Ai8芯片IO口不同输入输出模式的内部结构图,可以看到在芯片内部确实内置了保护二极管。的芯片手册的IO口基本结构图中,也可以看到在芯片内部内置了IO口的。黑表笔测试一个IO口,显示的电压为。实际测试情况如下,符合上述内容。红表笔测量芯片的GND引脚。万用表打到二极管挡位。
2025-03-10 16:28:05
710
原创 优化CSDN文章内容(Markdown语法)
在我编写并发表了自己的第一篇CSDN,同时也作为一个学习笔记,使用到的都是一些基础的语法在写一篇文章的时候想用表格,用CSDN给的模板只能生成两行两列的表格,尝试了好久都没整明白怎么添加列,添加行倒是会于是去专门学了一下Markdown语法。
2025-03-03 14:34:54
1069
原创 Git学习笔记(一)
Git有本地仓库和远程仓库本地仓库是我们自己电脑上的文件远程仓库是存放在Github或Gitee等云端上无论是新创建一个文件项目或者修改了一个文件项目都要先添加到暂存区然后提交到本地仓库最后推送到远程仓库。
2025-02-28 22:14:09
1414
1
原创 射频学习之HFSS入门(二)
打开HFSS后会自动创建一个未命名工程文件和设计文件点击右上角FileSave as将工程文件命名为Tee在工具栏点击HFSS右击设计文件点击Rename重命名为TeeModal设置求解类型设置建模的默认长度单位创建长方体模型右下角设置坐标按回车键后再设置长方体的长宽高左边属性框设置长方体名字和透明度为0.4添加端口激励设置为波端口激励在建模界面右键选择这个面右键命名为P1模式数也为1添加积分线表面下面中点表面上面中点左边可选择高亮波端口。
2025-02-26 17:08:26
989
原创 射频学习之HFSS入门(一)
HFSS(High-Frequency Structure Simulator) 是由ANSYS开发的一个专业的电磁场仿真软件,广泛用于高频电子工程中的电磁场分析。它主要用于设计和优化电磁设备,如天线、微波元件、射频(RF)设备等,能够帮助工程师模拟和分析复杂的电磁波传播和电磁场效应。HFSS是一个基于有限元法(FEM) 的仿真工具。它能够精确计算电磁场在复杂几何结构中的分布,帮助用户预测设计中可能出现的性能问题。天线设计与优化:包括常规天线、阵列天线、微带天线、卫星通信天线等。射频元件。
2025-02-25 21:47:06
1865
原创 下载安装VSCode
显示资源管理器下各个文件夹的图标。OKay希望这篇文章对你有所帮助。,可以根据需求下载以下插件。安装完成后右下角会提示。即将GBK转换成UTF8。进入VSCode后,C和C++的开发环境。C/C++重用代码块。
2025-01-18 16:06:05
597
原创 Windows安装双系统Ubuntu显示“关闭RST以继续”
Windows安装双系统时,如果硬盘模式是RST,则无法安装Ubuntu,要改成AHCI模式才能正常安装,本文介绍了具体步骤
2024-12-21 16:48:07
3999
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人