自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Ubuntu18.04安装ROS——实现小海龟仿真

ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。详细内容请参考fr=aladdin。

2024-07-13 00:34:09 944

原创 ROS机器人小车建模仿真

在当前科技快速发展的时代,机器人操作系统(ROS)已经成为机器学习和人工智能领域的重要工具。学习、开发和测试ROS固然充满挑战,但同样充满了无限的可能性与机遇。机器人的价格高昂,这意味着并不是每个研究者或学习者都有条件购买实体机器人进行实验。真实世界环境的多样性和复杂性,使得在设计、测试机器人系统时,需要模拟一个实际操作环境。将未经充分验证的程序部署到机器人上可能存在安全风险,特别是在高成本的硬件上进行实验时。针对上述挑战,ROS中的仿真环境如同一个安全网,为我们提供了一个风险低、成本低的测试平台。

2024-06-16 15:44:46 754

原创 基于System-Verilog的FPGA设计超声波测距

本次测试借用了一些学长的代码,也带有自己的一些思考,补全了学长没有写进代码的部分。由于代码中设计的寄存器只有那么多位数,也和驱动本身的下限,决定了这次设计只能测试大概4~247cm左右的距离。能够自己补全一部分代码,对于我来说还是很有成就感的,下次见。

2024-06-03 21:58:18 407

原创 红外超声波雷达

数据帧格式:数据以ASCII码形式传输,每个字节用两个ASCII字符表示,具有起始符(冒号)、地址、功能码、数据、校验码(LRC)、结束符(回车换行)。灵活性:Modbus可以在多种通信介质上传输,包括串行通信(RS232、RS485)、以太网(Modbus TCP/IP)、以及通过各种无线技术。实现基本的Modbus功能码,例如读取保持寄存器(0x03)、写单个寄存器(0x06)、写多个寄存器(0x10)等。单端信号电平:逻辑高电平(通常为-3V到-15V),逻辑低电平(通常为+3V到+15V)。

2024-06-01 20:14:49 825

原创 HLS入门-LED闪烁仿真

HLSHLS(High-Level Synthesis)是一种硬件描述语言编程技术,它可以将高级语言(如C/C++)转换为硬件描述语言(如VHDL或Verilog),以便将其用于FPGA设计中。

2024-05-25 19:07:18 441

原创 【FPGA实验】基于DE2-115平台的VGA显示

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

2024-05-23 10:48:39 781

原创 Nios实验入门实践——用Nios软件编程方式完成LED流水灯显示并使用串口输出“Hello Nios-II”字符到笔记本电脑

实验步骤1、新建Quartus项目,选择使用的芯片这里我选择的芯片类型为EP4CE115F29C7,你也可以根据自己需要,选择其他芯片。

2024-05-12 21:31:47 617 1

原创 第二周作业

Python在ubuntu是可以直接执行的脚本语言,而C++是编译语言,在执行之前需要经过编译过程,因此在编译工作空间之前需要配置文件。存放工程开发相关文件的文件夹,其中主要包括src,build,devel,install文件夹。2.向ROS Master注册节点信息,包括发布的话题名和话题中的消息类型;2.向ROS Master注册节点信息,包括发布的话题名和话题中的消息类型。4.在回调函数中完成动作服务功能的处理,并反馈进度信息。4.在回调函数中完成服务功能的处理,并反馈应答数据。

2024-03-15 18:04:43 969 1

原创 Quartus 实现 D 触发器及时序仿真

/dwave 是文件名** module dwave(d,clk,q);input clk;**output q;选择 Edit->Insert->Insert Node or Bus。使用 rtl viewer 查看硬件电路图\硬件电路图。返回 vwm 文件中,点击时序仿真,仿真结果如下。点击 File->New,选中 Verilog。依次添加四个 and2 和一个非门 not。鼠标选择 D,Q 信号 Q_n,,进行编辑。编辑输入 Clk,产生时钟信号。添加 Node or Bus。

2023-12-22 19:25:27 1703

原创 STM32F103C8T6基于HAL库移植uC/OS-III

UCOS是Micrium公司出品的RTOS类实时操作系统, UCOS目前有两个版本:UCOSII和UCOSIII。UCOSIII是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制,提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。UCOSIII是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的, UCOSIII结构简洁,可读性很强!非常适合初次接触嵌入式实时操作系统学生、嵌入式系统开发人员和爱好者学习。什么是任务?

2023-11-30 19:25:23 946 1

原创 第10周实验

本次实验总的来说较为简单,更多的是注重细节,接线波特率设置等。国标码国标码是一个四位十六进制数,它将一个汉字用两个字节表示,每个字节只有7位,与ASCII码相似。

2023-11-26 19:14:59 937 1

原创 I2C总线通信协议及实操stm32通过I2C实现温湿度(AHT20)采集

IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps 以上。注意IIC是为了与低速设备通信而发明的,所以IIC的传输速率比不上SPII2C最重要的功能包括:1.只需要两条总线;

2023-11-18 17:08:42 112 1

原创 定时器&PWM

定时器(Timer)人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。不少家用电器都安装了定时器来控制开关或工作时间。定时器的种类有:接通延时型定时器、断开延时型定时器、保持型接通延时定时器、脉冲型定时器。接通延时型定时器。

2023-11-05 17:45:55 113

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

DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。我们知道,数据传输,首先需要的是数据的源地址、数据传输位置的目标地址、传递数据多少的数据传输量、进行多少次传输的传输模式。DMA所需要的核心参数,便是这四个。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。每个通道都直接连接专用的硬件DMA请求,每个通道都同样支持软件触发。DMA的作用就是实现数据的直接传输,而去掉了传统数据传输需要CPU寄存器参与的环节。

2023-11-04 13:26:35 87 1

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

通过两种方式实现LED流水灯,可以很清楚地了解到这两种方式各自的优缺点。对于初学者来说,尝试一些寄存器开发的方式,还是很有帮助理解整个过程。虽然,固件库的方式会更快,但是,去对于初学者来说,还是有些地方不是很容易搞清楚。实验过程,开始编译烧录后,灯一直不亮,我一直以为是程序的问题(寄存器地址),结果最后才发现是自己忘了接电源。如果,你也有类似的问题,先检查自己器件的连接是否有问题,不用急着去看代码。

2023-11-01 16:55:53 51

原创 stm32外部中断模式控制灯亮灭

原文链接:https://blog.csdn.net/qq_47281915/article/details/121024427。该函数是给用户自己重写的,可以在这里根据不同的中断来执行不同的处理。在这里我们需要根据B5的不同中断来实现A4的亮灭。因为抖动的原因,当B5什么也不接入的时候,LED灯一直在频繁闪,看起来是亮的,但是不是很亮。User Label可以为当前引脚设置一个别名,方便后续自己调用。把A1配置为高电平、A7配置为低电平。把B5中断配置为上升沿和下降沿都触发。

2023-11-01 16:22:17 67

原创 HAL库中断方式进行串口通信

char c;//指令 0:停止 1:开始//输出信息//提示1//提示2//提示3int flag=0;//标志 0:停止发送 1.开始发送。

2023-10-28 16:15:33 766

原创 stm32cubeMX使用HAL库点亮LED流水灯

(1)Target界面中,选择跟正确的晶振大小,我使用的是8MHz的外部晶振。这个选项在软件仿真中起到很重要的作用,如果选择错误,那么波形一定是错误的,因为时间不准确。引脚为低电平的灯亮,高电平的灯不亮,高低电平转换周期(LED闪烁周期)为1s左右。①点击Setup Logic Analyzer。

2023-10-27 22:23:20 100 1

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

在必要的时候,对别人得到的结论要加以验证,实际情况可能与大多数情况的结论相悖。通过本实验对程序内存分配有更加详细深入的了解,这块内容也是博大精深。堆栈的一般结论如下(不能肯定):1.堆和栈空间分配:栈 向低地址扩展;堆 向高地址扩展2.如果依次定义变量,先定义的栈变量的内存地址比后定义的栈变量的内存地址要大;先定义的堆变量的内存地址比后定义的堆变量的内存地址要小。3.栈 临时变量,退出该作用域就会自动释放;堆 malloc变量,通过free函数释放。

2023-10-06 20:27:24 421 1

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

通过三个程序用gcc生成静态库和动态库的练习过程,基本上能够熟练的生成静态库和动态库。在两种库的比较中,能够明显看出两者的差别。虽然,过程中,遇到一些小问题,但是很快就解决了。只要慢慢多练几遍,便很快能够掌握。可执行文件是通过编译链接获取得到的,利用工具将源码编译得到.o文件,接下来就是将.o文件链接得到可执行文件。

2023-10-06 18:47:36 114 1

原创 LED流水灯

通过从建立到仿真的整个过程,让我对整个过程有了进一步的了解,进一步的掌握到整个过程操作。但是,在整个过程还是遇到了许多的问题,像原理图的整个设计上,还存在不理解的情况。代码部分自己不是很清楚每个语句的真实含义。

2023-09-26 20:22:49 71 1

原创 Ubuntu18.04下C语言的编译及makefile的应用

在ubuntu18.04环境下,可用gcc对c语言进行编译,但对于多个文件的维护工作可以由make和makefile来完成。我使用了gcc直接编译和Makefile进行编译这两种生成可执行文件的方式;在整个过程中,我深刻的理解到了如何从C语言源程序编译为可执行文件的过程。

2023-09-17 16:40:25 87 2

空空如也

空空如也

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

TA关注的人

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