自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 问答 (1)
  • 收藏
  • 关注

原创 ROS仿真小车—— urdf模型+rviz可视化

由于每个环节的参考系都位于该环节的底部,关节也是如此,所以在表示尺寸大小时,只需要描述其相对于连接的关节的相对位置关系即可。关于参数欧拉角rpy,是roll(滚转角)、pitch(俯仰角)、yaw(偏航角),分别对应绕x轴、y轴、z轴。然后我们看到在屏幕左下方有一个add按钮,单击,添加robotmodel,确定以后,就会发现图形正确显示了。display_jubot_base_urdf.launch(放launch文件夹下)(1)退到主目录catkin_ws下,执行catkin_make。

2024-06-14 23:41:59 1542

原创 简单了解RS485与RS232(UART)

在了解什么是Modbus之前,我们先来看下什么是协议协议是一个汉语词汇,读音为xié yì,意思是共同计议,协商;经过谈判、协商而制定的共同承认、共同遵守的文件。简单的说协议就是规则,我们需要了解规则,遵守规则,运用规则我们的单片机之间互相通信,以及单片机和上位机通信中,规定了不同的内容规范,这个规范是通信的双方都需要遵守的,这样就可以实现两者的通信。而这个协议规范可以有很多种,来适应不同的设备以及通信要求等,我们常见的就有IIC SPI UART串口通信协议等等。而Modbus也是一个串行通信协议。

2024-06-13 23:41:49 2963

原创 Chisel入门——在windows系统下部署Chisel环境并点亮FPGA小灯等实验

传统数字芯片的RTL设计采用Verilog语言为主,Chisel语言的全称是Constructing Harward in Scala Embeded Language,即在Scala语言中导入Chisel3库,即可使用Chisel语言。其特点是面向对象编程,可以方便地参数化定制硬件电路,加快设计流程。目前在RISC-V生态中应用较多,中科院计算所主持的培育下一代处理器设计人才的“一生一芯”项目也在极力推进该语言。Chisel是一个Scala库,用于构建高级别的、可综合的、模块化的硬件设计。

2024-06-13 21:42:22 2269 1

原创 【STM32F103】HC-SR04超声波测距

本次实验主要实现用stm32f103+HC-SR04实现超声波测距,将测距数值通过串口上传到上位机串口助手。

2024-05-31 20:35:19 1042

原创 HLS入门-LED闪烁仿真

HLS概念HLS(High-Level Synthesis)是一种硬件描述语言编程技术,它可以将高级语言(如C/C++)转换为硬件描述语言(如VHDL或Verilog),以便将其用于FPGA设计中。是一款高层次综合工具,可以帮助开发者加快开发效率HLS与VHDL/VerilogVHDL/Verilog对于一些算法比较简单,开发周期不长的来说是比较适用的,然而,一个开发过程,往往算法会比较复杂,并且可能会经历较长时间的仿真和调试,面对这样的问题,提出了HLS。

2024-05-25 19:43:02 718

原创 基于FPGA的VGA协议实现

VGA(Video Graphics Array)视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。**VGA接口即电脑采用VGA标准输出数据的专用接口。**VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型,绝大多数显卡都带有此种接口。它传输红、绿、蓝模拟信号以及同步信号(水平和垂直信号)。VGA不是用来显示的那块屏幕,而是用来传输信号的接口。VGA接口是一种D型接口,上面共有15针孔,分成三排,每排五个。

2024-05-22 20:54:58 980

原创 基于NIOS-II软核流水灯实现

2004年,Altera 正式推出了Nios II系列32位RISC嵌入式处理器。Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPGA中实现仅需35美分。Altera的Stratix 、Stratix GX、 Stratix II和 Cyclone系列FPGA全面支持Nios II处理器,以后推出的FPGA器件也将支持Nios II。Nios II包括3种产品,分别是:Nios Ⅱ/f(快速)——最高的系统性能,中等FPGA使用量。

2024-05-14 13:24:30 992

原创 数字图像处理知识点

图像在形成、记录、处理和传输过程中,由于成像系统、记录设备、传输介质和处理方法得不完善,导致图像质量下降,称为图像退化.图像恢复是,由于某些原因图像蒙上了一层噪音,去掉这些噪音,尽可能的回复原来的图像。图像恢复:是根据退化原因,建立相应的数学模型,从被污染或畸变的图像信号中提取所需要的信息,沿着使图像降质的逆过程恢复图像本来面貌。图像恢复的步骤:寻找退化原因——建立退化模型——反向推演——恢复图像图像恢复技术的最终目的是改善给定的图像质量。

2024-05-08 23:34:54 1045 1

原创 【初识opencv】

OpenCV提供了丰富的函数和工具,可以帮助开发者快速构建计算机视觉应用程序,如目标检测、人脸识别、图像分割、增强现实等。同时,OpenCV还提供了详细的文档和教程,方便开发者学习和使用。OpenCV(Open Source Computer Vision Library)是一个专门为实时计算机视觉而设计的库,它包含了众多的计算机视觉、机器学习和图像处理的函数。然后选择 “ 虚拟机 ” ,再选择 “ 可移动设备 ” ,最后点击 “ 连接 ” ,再弹出的窗口内点击 “ 确定 ”。记得点击确定,不要点击x。

2024-03-16 20:33:49 944

原创 ROS学习【2】-----ROS话题与服务编程:控制小乌龟画圆

然后进入我们的工程文件包可以参考上一篇文章在该程序写入如下代码如下:然后关闭该文件即可1、新建接收程序2、写入代码3、保存并退出2、打开CMakeLists.txt文件注意点击保存,然后退出输入如下图指令如下图即为编译成功3为运行接收程序,由于处于等待状态,所以暂时没有结果小乌龟开始画圈,终端3—实时位置接收程序callBackYuan.cpp开始接收终端1–位置发送程序yuan.cpp发送的位置信息,出现该结果,表示程序运行成功,本次实验成功2)、在终端1Ctrl+

2024-03-15 20:02:26 1858

原创 【ROS2——话题、服务、动作编程】

工作空间思存放工程开发相关文件的文件夹。

2024-03-15 13:49:12 2275

原创 ROS入门

ROS(Robot Operating System,机器人操作系统)ROS 是一个适用于机器人的开源的元操作系统,提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。相比于普通的OS,有着可用于异构硬件的特性。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。在某些方面 ROS 相当于一种 “机器人框架(Robot frameworks)。

2024-03-03 13:27:50 2103 1

原创 STM32+OLED屏显应用实例

OLED即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。LCD 都需要背光,而 OLED 不需要,因为它是自发光的。这样同样的显示,OLED 效果要来得好一些。

2023-12-30 20:38:20 1773 1

原创 电脑之间利用串口传文件

串口传输文件的练习。将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。

2023-12-30 20:23:38 461 1

原创 FPGA——1位全加器和4位全加器的实现

选择菜中File中的Create/Update→Create Symbol Files for Current File项,即可将当前文件add变成一个元件符号存盘,以 待在高层次设计中调用。”,然后在弹出的对话框中选择“USB blaster”,再点击“ok”,则硬件被安装上。”(同新建工程所选择的型号一样)为了构成全加器的项层设计,必预将以上设计的半加器half_adder.bdf 设置成可调用的元件。在弹出的“symbol”窗的“name”栏输入底层文件半加器的存储名“add” 调出半加器。

2023-12-19 20:05:39 1985 1

原创 【Quartus-II实现D触发器】

D触发器是一种最简单的触发器,在触发边沿到来时,将输入端的值存入其中,并且这个值与当前存储的值无关。在两个有效的脉冲边沿之间,D的跳转不会影响触发器存储的值,但是在脉冲边沿到来之前,输入端D必须有足够的建立时间,保证信号稳定。从图中可以发现D触发器有四个管脚,分别是输入信号D,输出信号Q,时钟信号CLK以及复位信号RESET。其功能是当RESET为低电平(0),Q处于低电平状态;

2023-12-19 19:04:42 1291 1

原创 点阵汉字的字模读取与显示

我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办?于是,就有了点阵。例如:8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则1脚接高电平a脚接低电平,则第一个点就亮了。实物图。

2023-12-02 21:52:22 267

原创 STM32F103C8T6移植uCOS基于HAL库

实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。RTOS需要具备以下基本特征:实时性:RTOS需要能够快速地处理任务,并能在规定的时间内做出响应。高可靠性:RTOS需要具备高可靠性,以确保任务的准确性和稳定性。任务调度:RTOS需要能够根据优先级和资源需求来调度任务。

2023-11-30 22:12:48 131

原创 IIC协议采集温湿度

学习I2C总线通信协议,使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。具体任务:1)解释什么是“软件I2C”和“硬件I2C”?2)阅读AHT20数据手册,编程实现:每隔2秒钟采集一次温湿度数据,并通过串口发送到上位机(win10)。

2023-11-18 19:13:50 566 1

原创 定时器&PWM应用编程

定时器是对周期固定的脉冲信号进行计数,如MCU内部的外设时钟(APB)。定时器就是用来定时的机器,是存在于STM32单片机中的一个外设。其本质就是计数器,只不过 计数器 记录的是STM32的外部情况,所接收的也是外部脉冲,而 定时器 则是由STM32自身提供的一个非常稳定的计数器,这个稳定的计数器就是STM32上连接的晶振部件。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。广泛应用于电机控制、灯光的亮度调节、功率控制等领域。

2023-11-14 20:01:17 143 1

原创 基于HAL库实现DMA串口通信

本次实验的器件及软件如下:软件版本:STM32CubeMX:6.35,KEIl:5.31,FlyMcu或者mcuisp(烧入软件),串口助手硬件:STM32F103C8T 核心板,usb to ttl。

2023-11-04 21:14:41 668 1

原创 【STM32串口通信】HAL库串口中断通信

串口通讯协议是一种设备间常用的串行通讯方式,用于输出调试信息。它以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。RS-232是一种在串口通讯中常见的物理层标准。它主要规定了信号的用途、通讯接口以及信号的电平标准。两个通讯设备的“DB9接口”之间通过串口信号线建立起连接,串口信号线中使用“RS-232标准”传输数据信号。

2023-10-29 20:24:13 308 1

原创 【STM32】基于HAL库实现流水灯及中断控制

中断是指CPU在执行当前程序时系统出现了某种状况,使得CPU必须停止当前程序,而去执行另一段程序来处理的出现的紧急事务,处理结束后CPU再返回到原先暂停的程序继续执行,这个过程就称为中断。使得计算机系统具备应对对处理突发事件的能力,使其能及时响应紧急事件。提高处理器效率,如果没有中断系统,CPU就只能按照原来的程序编写的先后顺序,对各个外设进行查询和处理,即轮询工作方式,轮询方法貌似公平,但实际工作效率却很低。这里仅做简单介绍,具体的可自行查找。

2023-10-27 12:50:49 1458 1

原创 基于寄存器与基于固件库的stm32 LED流水灯

提醒一下,整个工程是基于标准外设库新建工程,基于寄存器新建工程需要到第七步,然后只需要将后缀为md.s的启动文件加入user即可,如此即可。5、回到keil,点击Target,选择add group,进行3次,可以重命名一个加一个(如果不可以直接加三个)注意三个文件的路径都要加进去(3-4-5),但是一次只能加一个,所以需要添加三次,每次都要点击确定。8、接下来几步是关键,注意上面的路径信息,下载的文件夹是相同的,复制看以下到start目录下。需要注意的是一定要点击ok,不能点×退出,不能无法添加路径。

2023-10-17 08:41:47 241 1

原创 Ubuntu、stm32下的程序内存分配问题(堆栈、局部全局变量等)

这次实验重温了全局变量、局部变量、堆、栈的概念,并分别在Ubantu系统下与stm32中验证了理论,发现两者分配地址的方式有些许不同,这让我重新认识了内存分配,原来不是所有系统都用同一种方式分配内存。堆和栈说白了就是内存的两种管理方式,栈很规整,可以自己释放内存,但是不够灵活,堆很灵活,但是有时候我们又会嫌弃自己管理内存的麻烦。可以说两者各有利弊,我们应根据实际情况做出选择参考: 链接:link链接:link。

2023-10-05 21:51:39 234

原创 用gcc生成静态库.a和动态库.so

通过三个程序用gcc生成静态库和动态库的练习过程,基本上能够熟练的生成静态库和动态库。一定程度的了解了以下动态库,静态库的生成,使用,对基本的东西也有了一定了解。

2023-10-05 13:15:32 69

原创 Proteus使用教程并仿真51单片机——LED流水灯

(6)使用 LBL 为支线标记编号,连接到主线的支线,需要对支线进行编号才能正常连接,否则后面需要正常实验成功(使用方法:点击 LBL 后,在左键单击支线上,修改值。(4)创建 PCB(如果不需要创建PCB,可以勾选),默认选择 DEFAULT ,再点击 Next。(3)创建原理图(如果不需要创建原理图,可以勾选 不创建原理图),然后默认选择 DEFAULT ,再点击 Next。(5)点击终端接口→选择POWER,放置电源,然后左键双击电源图标,修改为VCC,再点击OK。(2)同上,添加电阻。

2023-09-26 21:12:40 5869 1

原创 STM32F103寄存器方式点亮LED流水灯

寄存器(Register)是 CPU 中用于存储数据的单元。在运算器、控制器中,都需要有记忆功能的单元来保存从存储器中读取的数据,以及保存运算器生成的数据,这样的单元就是寄存器。简单来说,寄存器就是存放东西的一个空间器物。寄存器可能存放的是指令、数据或地址。

2023-09-26 18:27:52 207 1

原创 STM32F103系列芯片的地址映射和寄存器映射原理

寄存器(Register)是 CPU 中用于存储数据的单元。在运算器、控制器中,都需要有记忆功能的单元来保存从存储器中读取的数据,以及保存运算器生成的数据,这样的单元就是寄存器。简单来说,寄存器就是存放东西的一个空间器物。寄存器可能存放的是指令、数据或地址。

2023-09-26 17:45:28 419 1

原创 register和volatile 关键字

使用register关键字声明的变量叫寄存器变量,寄存器变量存储在CPU的寄存器中,CPU访问CPU内部寄存器要比访问内存中的变量要快,因此使用register声明的变量可以提高运行速度。(也就是说, const指定了我们的程序代码中是不可以改变这个变量的,但是volatile指出,可以是由于硬件的原因,在代码意外更改这个值,但是我们的代码同时会更新使用这个最新的数值)回答不出这个问题的人是不会被雇佣的。但是,需要注意的是寄存器的数量是有限的,比如把register定义的变量放在循环之中是不合理的。

2023-09-26 16:44:25 217 1

原创 Ubuntu系统使用gcc指令和Makefile编译简单的C程序

本文简单的介绍Ubuntu系统上编译多个C程序来熟悉在Linux系统上编写C程序的操作,Ubuntu的版本为20.04Desktop。涉及到的程序名称分别为main1.c、sub1.c、sub1.h;以下采用两种方式进行编译,第一种是直接使用gcc在命令行编译,第二种是使用Makefile文件编译。提示:以下是本篇文章正文内容,下面案例可供参考。

2023-09-12 20:57:04 319

空空如也

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

TA关注的人

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