自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于System-Verilog的流水灯设计与仿真

像 Verilog 和 VHDL 之类的硬件描述语言 (HDL) 主要用于描述硬件行为,以便将其转换为由组合门电路和时序元件组成的数字块。为了验证 HDL 中的硬件描述正确无误,就需要具有更多功能特性的面向对象的编程语言 (OOP) 来支持复杂的测试过程,这种语言通常被称为硬件验证语言 (HVL)。SystemVerilog 是 Verilog 的扩展,具有诸多此类验证功能,能支持工程师在仿真中使用复杂的测试激励文件结构和随机激励来验证设计。

2024-06-15 23:08:51 347

原创 红外超声波雷达测距

PDU 属于应用数据单元(Application Data Unit,ADU)的一部分,除此之外,ADU 还包括附加地址域和差错校验域及实际传输的数据,这个数据可能是业务数据,也可能是指令、响应信息或报警信息等。对于Modbus-RTU和ASCII协议,其应用数据单元是在协议数据单元的基础上,前面加上从站地址,后面加上校验码;Modbus报文的基本结构,称为"协议数据单元",简称"PDU",它由"功能码+数据"组成,这个对Modbus所有三种协议都是相同的,与使用的物理层无关。

2024-06-15 19:10:30 972

原创 HLS入门

高层次综合(High Level Synthesis, HLS)是Xilinx公司推出的最新一代的FPGA设计工具,它能让用户通过编写C/C++等高级语言代码实现RTL级的硬件功能。随着这款工具的出现,软硬之间的区别越来越模糊,即使你对于硬件完全不懂,你也能编写出符合工程功能要求的RTL代码。新兴的HLS与VHDL/Verilog两种工具就像是通往一个目的地的两条不同的路,这三者都只是为人所用的工具,类似于软件开发中的不同编程语言,虽然在效力和功能上互有优劣,但本质上是一类物事。添加工程文件并编写代码。

2024-06-12 21:58:53 814

原创 VGA显示文字、彩条

建立过程参考:https://blog.csdn.net/YouthBlood9/article/details/125226768。参考链接:https://blog.csdn.net/qq_45659777/article/details/124834294。使用网站:https://www.zhetao.com/fontarray.html。

2024-05-24 12:45:36 216

原创 基于NIOSII软核的流水灯实验

使用同样的指令集架构(ISA),100%二进制代码兼容,设计者可以根据系统需求的变化更改CPU,选择满足性能和成本的最佳方案,而不会影响已有的软件投入。本次实验需要在FPGA上通过Nios Ⅱ软核完成流水灯控制,由于控制 LED 灯闪烁的用户程序代码很小,可将其固化在片内 ROM 来执行。Cyclone系列FPGA全面支持Nios II处理器,以后推出的FPGA器件也将支持Nios II。将管脚”inclk0”改名为 clock,管脚”reset_reset_n”改名为 reset_n,

2024-05-14 22:38:49 630

原创 ROS中完成机器小车的模型创建仿真环境的设置

点击 file 的 save as 保存模型文件,地图绘制好后,保存为 .world 地图文件(文件后缀名一定要是 .world),将 .world 文件复制到 ~/catkin_ws/src/world 文件夹内,地图环境就搭建好了。放在 ~/catkin_ws/src/tutorials 文件夹下 在 ~/catkin_ws 文件夹下 catkin 编译。编写 .launch 文件,放到 ~/catkin/src/tutorials/launch 文件夹。运行 launch 文件。

2024-05-07 22:57:34 1113

原创 Ubuntu安装ROS并实现小海龟简单移动

ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。也可使用本地安装的方法,参考:https://blog.csdn.net/qq_43279579/article/details/114291635。参考链接:https://blog.csdn.net/qq_43279579/article/details/114291635。

2024-03-17 16:47:59 459

原创 Ubuntu下opencv打开图片及视频

接下来,点击【虚拟机】->【设置】->【USB控制器】将 “ USB兼容性 ” 设置为 “ USB 3.1 ” ,并点击确定。选择 “ 虚拟机 ” ,再选择 “ 可移动设备 ” ,再选择 ,最后点击 “ 连接 ” ,再弹出的窗口内点击 “ 确定 ”。编译出错,原因在于需要用 C++ 编译器编译你的接口模块。需要将gcc 改为g++。创建一个文件夹用于存放代码文件code,并创建一个test1.cpp文件。使用快捷键Win+R,输入services.msc,确定。输出结果执行以下命令。

2024-03-15 13:32:15 378

原创 ROS动作编程练习

参考链接:https://blog.csdn.net/qq_42451251/article/details/104664926。存放工程开发相关文件的文件夹,其中主要包括src,build,devel,install文件夹。2.向ROS Master注册节点信息,包括发布的话题名和话题中的消息类型。打开callBackYuan.cpp文件,输入如下代码。4.在回调函数中完成服务功能的处理,并反馈应答数据。1.设置需要编译的代码和生成的可执行文件。1.设置需要编译的代码和生成的可执行文件。

2024-03-15 13:12:59 1725

原创 用Verilog设计1个单周期CPU

而在写操作时,在 We使能信号为1时,在时钟边沿触发写入。we:写使能信号,We为1时,进行sw指令操作,此时Din端口输入信号实际为rt,Addr端口输入信号为rs和偏移量相加的地址,在时钟周期上升沿将rt的值写入改地址的储存单元;Wr:写使能信号,为0的时候不能写入,D值不更新,为1的时候能写入,D值更新(当时钟边沿到来时,将𝐷𝑎𝑡𝑎端口送来的数据写入𝑅𝑤指定的寄存器)入信号。因此,要设计处理器,首先需要确定处理器的指令集和指令编码,然后确定每条指令的数据通路,最后确定数据通路的控制信号。

2024-01-05 20:32:57 2000 1

原创 Verilog基础编程练习

分析:在Verilog中,reg类型表示寄存器类型,用于always模块内被赋值的信号。如果将output reg [7:0] out改为output [7:0] out,会出现“Multiple drivers”错误,因为wire类型的信号可以有多个驱动器,而reg类型的信号只能有一个驱动器。因此,如果将out定义为wire类型,会出现多个驱动器的情况,从而导致错误。通过对比,可以看出两者的电路图思路是一样的,不过verilog生成的电路图把中间复杂的接线部分改成了一个模块,看起来更简洁。

2023-12-22 19:13:50 375

原创 STM32F103C8T6移植uCOS基于HAL库

参考链接:https://blog.csdn.net/qq_45659777/article/details/121570886。PS:如果点击小方块最后软件崩溃无法添加成功的话,可以右击项目文件,点击“Add Group…,选中以下文件,Add。,选中以下文件,Add。,选中以下文件,Add。,选中以下文件,Add。,选中以下文件,Add。,选中以下文件,Add。找到文件includes.h,并修改其代码。找到文件app_cfg.h,并修改其代码。然后点击魔法棒,C/C++添加文件路径。

2023-11-30 13:37:30 55

原创 基于SPI通信方式的OLED显示

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是由 Motorola 公司提出的一种高速的,全双工,同步的通信总线,被广泛地使用在 ADC、LCD 等设备与 MCU 间要求通讯速率较高的场合。

2023-11-26 17:26:43 582 1

原创 电脑间串口连接传输文件

我发送了一张图片最后打开图片。

2023-11-19 23:01:22 108 1

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

我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办?于是,就有了点阵。例如:8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则1脚接高电平a脚接低电平,则第一个点就亮了。实物图借助取模软件,即可将我们所需要的文字或字母,以点阵的形式呈现出来。我们知道英文字母数量比较少,我们只要用一个字节(8位)就足以表达。但是汉字非常多。要怎么表达呢?

2023-11-19 22:14:44 1889 1

原创 STM32F103基于I2C协议的AHT20温湿度传感器的数据采集

主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,因而效率要远高于软件模拟的I2C;3.配置USART1。

2023-11-18 18:44:45 42 1

原创 STM32定时器&PWM应用编程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2023-11-05 17:04:29 59

原创 HAL库实现DAM串口通信

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2023-11-03 15:54:13 99

原创 使用MDK编译stm32简单程序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2023-11-01 16:38:30 72 1

原创 register和volatile 关键字这两个变量修饰符的作用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2023-11-01 16:27:48 60 1

原创 寄存器映射原理详解,GPIO端口的初始化设置步骤

GPIO初始化需要通过时钟配置、输入输出模式设置、最大速率设置三个步骤来实现。参考链接:https://blog.csdn.net/qq_46467126/article/details/120737655。

2023-11-01 16:22:51 113 1

原创 Proteus仿真51程序——LED流水灯

​。

2023-11-01 16:13:36 46 1

原创 STM简单的串口通信

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2023-10-28 15:23:51 56 1

原创 基于HAL库点亮流水灯

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2023-10-27 21:31:57 40 1

原创 stm32点亮LED流水灯(寄存器&标准外设库)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2023-10-17 21:19:10 190

原创 Ubuntu、stm32中的程序内存分配问题

通过运行结果可以发现,Ubuntu在栈区和堆区的地址值都是从上到下增长的,stm32的栈区的地址值是从上到下减小的,堆区则是从上到下增长的。从每个区来看,地址值是从上到下逐步减小的,即栈区的地址是高地址,代码区的地址是处于低地址。参考链接:https://blog.csdn.net/qq_46467126/article/details/121875496。

2023-10-07 21:35:03 74 1

原创 gcc背后的故事

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2023-10-05 16:53:06 34

原创 用gcc生成静态库和动态库

对于动态库和静态库的使用有了基本的了解和认识,也了解了两者的差别。参考链接:https://blog.csdn.net/qq_43279579/article/details/109026927。

2023-10-05 15:19:27 43

原创 在ubuntu下用gcc和makefile使用编译工具编译main1.c和sub1.c程序

在本次实验过程中,学会了用makefile编译程序,了解了编译程序的整个过程。对于各种方法编译程序都有了了解。参考链接:https://blog.csdn.net/qq_45237293/article/details/108741893。

2023-09-15 21:18:04 52

空空如也

空空如也

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

TA关注的人

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