自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 机械设计系列【】关于直线轴承和无油衬套的区别和选取

写在前面在机械设计中,如何选择轴承呀之类的配件,其实没那么符合,和企业员工用人是一样的,把合适的人放在合适的岗位,同时兼顾价格,注意,先合适再价格。在举一个例子,stm32单片机就是运算用的,这么多型号怎么选择,当然是满足flash,主频的前提下,兼顾价格,各行各业都是一样的。

2025-03-29 08:50:26 275

原创 STM32【8】堆栈和段的概念(1)

C函数的第1个参数,放在寄存器R0里(这个是定死的,第一个参数在R0,第二个参数在R2.。在我们这个场景里面,你没有办法知道buf2的地址,就没办法通过buf2-buf1确定buf1的长度。这种方法巧妙地把分配的内存的长度,记录了下来以后 free(buf1)时,怎么得到buf1的长度?它的初始值肯定是保存在flash上,运行的时候,因为他是可读可写,所以运行时它肯定是在内存里。你申请的内存,你想用来做什么都可以。,至于大于4个参数的话,就是其他的方式,具体没有研究过,不过肯定没有这个效率高。

2025-03-26 19:28:26 902

转载 STM32【7】关于stm32的储存空间以及启动起始地址

基于ARM内核的芯片代码区都是从0x00000000开始执行的,但是通过boot启动模式选择从不同的地址进行重映射到0x0000 0000执行。0x08000000中存放的并不是main()函数的地址,是STM32中的主FLASH(用户代码空间)的起始地址。上电后执行复位程序,先执行SystemInit()函数初始化系统时钟,然后执行main()函数。

2025-03-26 14:43:09 44

原创 STM32学习【6】更高视角看UART才能真正的学懂串口

通过我们上面的对比,可以发现,在寄存器之间转移所耗费的时间,程序读取数据和发送数据的时间,和乌龟一般的串口发送数据速度,都是可以认为是瞬间的。因为串口发送太过缓慢,不可能总是等待它,不然严重影响程序的效率,所以stm32公司设计了各种状态寄存器,每次读取的时候看看有没有接收到数据,接收到了再读取。每次发送的时候看看有没有发送完成,发送完成了在写入(会覆盖)。这篇文章并没有去写各种寄存器的应用,这个网上一找一大把,反而写了一些框架层面的一些东西,这个东西有一些和技术无关,但是却是技术的内核!

2025-03-24 22:31:25 641

原创 STM32学习【5】用按键控制LED亮灭(寄存器)以及对位运算的思考

我们使用KEY1来控制红色LED:按下KEY1则灯亮,松开后灯灭KEY1用的是PA0引脚。

2025-03-18 22:44:30 748

原创 机械设计【1】直线导轨用法

在直线导轨和直线模组(动力提供者)之间,用凸轮随动器,解耦了横向偏差以及带来的扭矩,确实是一个比较好的思路。这里的固定直接用的放射型的固定块挤压固定,车间人员调试过程中,可能会有麻烦(两侧均无靠肩基准)这个用法还是第一次见,挺别致的!

2025-03-18 11:15:13 217 2

原创 气路设计【1】气缸配件的设计

写在前面:以往都是把资料放在自己的网盘里,现在放在公共空间,两个目的,第一:可以分享大家一起使用,共同进步,第二:方便查询。

2025-03-17 10:54:50 139

原创 STM32学习【5】底层的知识使用_汇编_反汇编_机器码

对一些底层的知识一定要知道了解清楚的,但是有人就说了,我了解这么多干什么,我都是用的java,C语言等等高级语言,根本涉及不到寄存器之类,其实不然,我们学的所有的技能和知识并不仅仅是表面上的东西,而是学习里面最接近本质的东西,可以用古人的道来形容。这里面借用了韦东山的一些文字和图片。C: 为了方便人类方便使用,发明的高级语言,要转换为汇编。汇编:为了解放人类的记忆,发明的“助记符”,不用去记各类机器码。最终要转换为机器码。机器码:给CPU使用。

2025-03-11 11:31:14 602

原创 硬件学习【1】74HC165D-并行信号输入-串行输出

这个世界有很多是需要并行输入信号,整合成串行数据的需求的。这个时候可以用74HC165芯片。74HC165。并行输入是为了响应迅速,比如我们要检测1百万个信号,一个个轮训检测,黄花菜都凉了,如果并行就不一样了,那为什么要转串行呢,串行方便CPU处理数据,否则都零零散散的不成体系。手有正反,光有亮暗,然而这个世界同样也有很多,串行数据的需求打散成并行输出信号的需求的,这个使用: [74HC595]。

2025-03-06 20:54:04 341

原创 GIT工具学习【2】:分支

就是把两个分支(项目文件夹)合并在一起git merge 分支名:合并分支。

2025-03-04 00:01:45 370

原创 GIT工具学习【1】:基本操作

我坚持认为,用得上的知识才是有用的,所以学习技能要以实际需求为导向,比如git工具可以管理linux这种庞大的项目,但是问题是,你需要嘛?我们可以先找把自己的项目实现版本管理,git工具已经有极大的帮助了。

2025-03-02 22:49:10 1051

原创 STM32学习【4】ARM汇编(够用)

在CPU的世界里,一切外设都被抽象为寄存器或带有地址的内存数据。CPU只关心其内部的16个寄存器以及内存数据,外设寄存器虽然物理上与内存不同,但在CPU眼中并无区别,唯一的差异在于地址空间。

2025-02-27 23:00:35 675

原创 STM32【3】芯片的底层组成概论

单片机的意思是,小小计算电脑,麻雀虽小,五脏俱全,里面包含了CPU,ROM,RAM,各种外设。CPU地位最高,可以访问ROM和RAM,Flash,GPIO等外设,也就是ROM、RAM、Flash这些在CPU的眼里,地位是一样的。CPU访问外设是通过内存管理器来协调的。

2025-02-25 21:36:43 408

原创 树莓派学习【2】开机自动启动程序的方法

systemd。

2025-02-25 17:13:18 863

原创 python学习【1】time库

在Python中包含了若干个能够处理时间的库,而time库是最基本的一个,是Python中处理时间的标准库。time库能够表达计算机时间,提供获取系统时间并格式化输出的方法,提供系统级精确计时功能(可以用于程序性能分析)。time库包含三类函数,以下介绍常用的函数:- 时间获取:time()、ctime()、gmtime()- 时间格式化:strftime()、strptime()- 程序计时:sleep()、perf_counter()

2025-02-25 11:49:20 803

原创 STM32学习【2】时钟的配置和选择

在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①、HSI是高速内部时钟,RC振荡器,频率为8MHz。精度较差。②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③、LSI是低速内部时钟,RC振荡器,频率为40kHz。④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。

2025-02-23 11:55:44 423

原创 STM32学习【1】GPIO工作原理(八种工作方式)

推挽结构一般是指两个参数相同的三极管或MOS管分别受两互补信号的控制,总是在一个三极管或MOS管导通的时候另一个截止。高低电平由输出电平决定。推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务。电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

2025-02-23 11:03:22 802

原创 C语言学习【2】关于指针的记忆方式

前言:C语言的指针,用的最多的是普通指针,在RTOS中函数指针用的多,我觉得指针是非常美妙的,是对内存世界可以随意操纵。

2025-02-21 11:59:15 214

原创 C语言学习【1】C语言关于寄存器的封装

在嵌入式中,底层一定是操作寄存器,我有一个理念,凡事一定要想清楚,把任何知识点融入自己的理解之中,这样不被技术限制的同时,还能让自己其他方面的认识得到进步。下面我把自己的理解写出来,抛砖引玉!

2025-02-21 09:23:21 419

原创 linux学习【7】Sourc Insight 4.0设置+操作

按照这个设置就可以了,下面的设置会标明设置理由。

2025-02-20 23:04:33 716

原创 linux学习【6】:嵌入式linux开发版+window笔记本+ubuntu虚拟机网络互联

如果ping不通,可能是window防火墙的问题,把墙关掉!

2025-02-16 14:53:54 688

原创 linux学习【5】:嵌入式linux的文件IO系统

这里面记录一些底层的东西。

2025-02-13 21:55:39 347

原创 linux教程【4】:vim编辑器的使用

一般模式就是主模式,可以查看,删除代码,就当成window的桌面就好了,没事就在这个这个窗口待着。任何时候没事按按ESC就回到桌面了。编辑模式就是侧重于编辑 ,进入的方式i和a,一个inset 一个after_insert,插入前面捅刀子和后面捅刀子的区别,只有写代码时候进入这个模式。命令行模式侧重于各种特殊的命令。

2025-02-12 23:47:22 264

原创 linux教程【3】:权限和用户操作

掌握了下面这些,linux的操作就够用了。

2025-02-12 16:28:39 271

原创 ROS学习【11】启动多个节点(launch)

调用的时候:ros2 launch robot_startup example_param_rclcpp.launch.py action_declare_arg_max_spped :=2.0。假设一个高达用的系统是ROS2,里面有几千个节点,这个时候敌人来袭,一阵操作猛如虎,金属键盘按出火花来,还没启动完节点,底裤都被扒完了!声明一个launch变量,参数的名字:launch_max_speed,默认值:default_value=‘2.0’以往我们启动节点都是一个终端开一个节点的方式启动。

2025-02-11 09:05:28 704

原创 ROS学习【10】关于参数

参数就是你家空调遥控器按加减号,升高或者降低温度的时候建立的。当然,空调是没有ros2系统的,但是道理差不多,把节点当初空调,遥控器当成客户端就好了。参数是节点的一个配置值,你可以认为参数是一个节点的设置。

2025-02-10 17:38:54 322

原创 ROS学习【9】ROS命令常用汇总

【代码】ROS学习【9】ROS命令常用汇总。

2025-02-10 12:23:27 111

原创 ROS2学习【8】:自定义接口

接口就是一种数据结构标准,别看说的这么玄乎,其实现实世界到处都是接口,比如你家盖房子的砖头大小,钢筋混凝土的钢号,H型钢的各种规格,板材的板厚等都是标准的,为什么要设定,是因为上下游不同的人群要合作盖房子,他们之间的对接要有确定性。打开终端输入:ros2 interface package sensor_msgs。

2025-02-10 12:20:26 937

原创 ROS2学习【7】:服务通讯示例

服务分为客户端和服务端,平时我们用的手机APP都可以成为客户端,而APP服务器对于软件来说就是服务端。客户端发送请求给服务端,服务端可以根据客户端的请求做一些处理,然后返回结果给客户端。简单的说,我对着山谷喊一嗓子,等一会,山谷会给我回应。学术一点的表达:有回应,但是有延迟(通讯和程序处理时间)。同一个服务(名称相同)有且只能有一个节点来提供同一个服务可以被多个客户端调用。

2025-02-10 11:39:32 281

原创 ROS2学习【6】:话题之自定义消息接口

builtin_interfaces:这个依赖是把自定义消息接口转化c++和python源码的功能rosidl_default_genterators:用于将msg等消息接口定义文件转换成库或者头文件类。

2025-02-07 16:59:09 420

原创 ros2学习【5】:话题以及通信实例(C++和python示例)

新建一个chapt3_ws的命名空间,然后在下面新建src源码库,在chapt3_ws命名空间文件夹层面运行colcon build。在功能包的src文件夹下面新建turtle_circle.cpp文件。新建一个工作空间chapt3_ws,这个时候就会出现一个小乌龟在跑步了。这个时候就会出现一个小乌龟在画圆。这个是依托于小海龟的示例做的演示。这个时候就听见有个机器人在读数了。这些都是标准动作,具体看。在下面新建src源码库。在源码下面构建功能包,

2025-02-07 14:02:53 888

原创 linux教程【2】:linux环境变量更改

存储linux或者用户的配置信息的。可以用把环境变量打印出来。可以用把所有的环境变量罗列出来。

2025-02-03 11:10:03 250

原创 Linux学习【1】 Linux平替window的操作

对于window切入linux的初学者来说,看到linux中一些命令就眼花缭乱,比如cd,pwd,ls等等,然后心态就崩了,这得学到什么时候。其实学习的思路非常之简单,先,我们把window能用的操作,用linux实现出来,至少能做到window的平替之后,再去学习不一样的地方。还有一个,命令不要用脑子记忆,要用手去记忆,大概用个四五次手自动就打出来了!CLI(命令行)的操作方式和GUI(鼠标点点点)的方式相比,有时候命令行输错了命令,卡死在里面了,按ctrl+c就可以恢复正常。

2025-02-02 20:03:58 339

原创 cmake的一些理解

就是我们下达给总经理的任务书。

2025-02-02 09:44:57 279

原创 ROS2学习【4】:构建功能包步骤(python和C++)

这是因为每次编译后,生成的可执行文件和库文件都可能发生变化,而新的终端会话则不会继承之前会话中的环境变量设置。System)环境中的作用主要是配置和刷新用户的shell环境,以便能够正确地使用ROS命令和工具。这样,每次打开新的终端会话时,该命令都会自动执行,无需手动输入。在ROS中,每次重新编译工作空间或启动一个新的终端会话时,都需要执行source。将构建好的目标文件(就是编译好的节点文件)复制到指定的安装目录中。这一篇,主要目的是:熟悉体会编写节点,编译节点,运行节点的过程!

2025-02-01 13:32:25 1420

原创 ROS2学习【3】:工作空间+创建节点

ROS节点的存储逻辑是,节点放在功能包里面,包放在工作空间里面,可以这个认为,工作空间的文件夹中可以有很多包(文件夹),每一个包中可以放入很多的节点。至于为什么是这个存放逻辑,这个就需要问ROS2设计者了。

2025-01-31 17:58:34 316

原创 ROS2学习 【2】 :ROS架构分析

其实这一层层的分层,就是让我们更高效的利用计算机,很明显我们写的代码是最高层,那么一个公司的最高层是哪个职位,董事长,股东会对吧,他们下达一个命令,下面机构根据这条指令或者战略开始执行。ROS2里面的分层很复杂,但是我们了解即可,毕竟我们是使用,知道怎么下达指令即可。qst:什么时间要了解更多的相关知识呢?答案就是ROS2满足不了我们需求的时候,也就是ROS2我们应用非常熟练的时候!

2025-01-31 13:55:20 937

原创 ROS2学习【1】:ROS2环境安装

输入linux登录密码,在选项界面选择1-一键安装ROS,接着根据你的情况选择是否更换系统源(更换一下),接着等待一会就会让你选择要安装的ROS2版本了。接着会问你安装桌面版还是基础版,我们选择桌面版,包含可视化工具,如果是在树莓派上装可以使用基础版。我安装的是humble版本的ROS,所以安装目录在/opt/ros/humble下。首先启动虚拟机或者启动双系统中的ubuntu,打开终端,输入下面的指令。ROS安装的默认目录在/opt/ros/下,根据版本的名字进行区分。

2025-01-31 11:53:34 247

原创 LVGL教程:1.LVGL关键点介绍

在官网的Use Case-Demo(上图所示),可以在网页上面看到实时的效果延时,非常的漂亮!关于LVGL初期,了解这些内容已经足够了,后面就是技术层面的学习。

2025-01-30 14:13:19 179

原创 ESP32编程教程系列 4.platform.ini常用命令

在platformIO平台,platform.ini写入代码可以调整一些单片机参数,此篇文章会不断更新。

2025-01-29 21:29:29 109

空空如也

空空如也

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

TA关注的人

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