自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 How to use ModelSim

These are all written by a robot

2024-06-21 09:44:43 165

原创 System-Verilog 实现DE2-115倒车雷达模拟

SystemVerilog是一种高级的硬件描述语言(HDL),它不仅继承了Verilog语言的所有特性,还增加了一系列的新特性,使其成为现代电子系统设计和验证的强大工具。以下是对SystemVerilog的更详尽的介绍。起源与发展: SystemVerilog起源于2002年,由Accellera标准组织开发,并于2005年被IEEE正式采纳为IEEE 1800-2005标准。随着电子系统复杂性的增加,SystemVerilog不断更新,以满足设计者的需求。设计和验证的重要性。

2024-06-01 20:01:26 1022

原创 基于STM32F103和HC-SR04的12路RS485与Modbus通信方案

理解RS485与RS232之间的差距了解Modbus协议对外提供RS485和Modbus协议,采用 stm32F103+HC-SR04超声波模块,完成12路车载超声波雷达的设计RS232的历史起源:RS232由美国电子工业协会(EIA)在1962年发布,是数据终端设备(DTE)和数据电路端接设备(DCE)之间的电气/机械接口标准。命名:“RS”代表“Recommended Standard”(推荐标准),“232”是标准标识号。改版:RS232经历了多次更新:1969年发布了RS232-C版本。

2024-05-24 19:18:52 779

原创 基于FPGA实现LED的闪烁——HLS

了解HLS的相关内容实现HLS的实验环境配置使用HLS点亮一个小灯高层次综合(High-Level Synthesis, HLS)是一种先进的硬件设计方法,它允许开发者使用高级编程语言(如C、C++或SystemC)来描述硬件功能,而不是传统的硬件描述语言(HDL)如VHDL或Verilog。HLS工具能够自动将这些高级语言代码转换为寄存器传输级(Register Transfer Level, RTL)电路设计,这大大简化了硬件设计过程,并缩短了开发周期。

2024-05-21 14:59:29 1043

原创 基于FPGA的VGA协议实现----条纹-文字-图片

深入了解VGA协议理解不同显示模式下的VGA控制时序参数完成在VGA上显示对应的条纹-文字-图片为了适应匹配不同厂家的 VGA 显示器, VGA 视频传输接口有自己的一套 VGA 时序标准,只有遵循 VGA 的时序标准,才能正确的进行图像信息的显示。在这里我们以 VESA VGA 时序标准为例,为大家讲解一下 VGA 时序标准,具体见图 2。图 2 VESA VGA时序标准图。

2024-05-20 10:59:26 1030 1

原创 树莓派点亮FPGA小灯

了解树莓派的相关内容实现树莓派与FPGA开发板之间的通信使用树莓派点亮FPGA开发板上面的小灯a.简介:树莓派(Raspbreey Pi,RPi),慈善组织“Raspberry Pi 基金会”开发,为学生计算机编程教育而设计,基于Linux系统的单片机系统。随Windows 10 IoT的发布,有可以用运行Windows的树莓派。只有信用卡大小,却有视频、音频等功能。c. 硬件:是一款基于ARM的微型电脑主板内存硬盘:SD/MicroSD卡四类接口:有1/2/4个USB接口;

2024-05-12 16:17:47 1304 1

原创 Verlog-流水灯-FPGA

熟悉FPGA的开发流程练习并且巩固有关于verilog代码的相关内容使用Verilog语言编写程序实现FPGA的流水灯效果本次实验的核心目的在于通过实践操作,熟悉FPGA的开发流程,并通过编写Verilog代码来实现FPGA的流水灯效果,以此来练习和巩固Verilog编程的相关知识。实验过程概述:首先需要了解FPGA的基本概念、特点以及设计流程,同时掌握Verilog语言的基础语法和编程技巧。配置FPGA开发环境,包括安装相应的软件工具和硬件设备。

2024-05-11 19:20:58 1124

原创 基于Nios软件实现流水灯+串口输出

Nios II软核处理器是一款可定制的嵌入式处理器,运行在FPGA内部,由Altera(现为Intel FPGA)提供。它支持多种配置选项,包括不同的流水线级别、缓存大小、中断和异常处理等。了解Nios II软核对于掌握如何利用FPGA进行复杂系统设计至关重要。学习Nios II处理器的基本架构和工作原理。熟悉Nios II软核的开发工具和环境。理解如何对Nios II软核进行配置以满足特定应用需求。

2024-05-11 19:19:14 795

原创 Verlog-串口发送-FPGA

熟悉FPGA的开发流程练习并且巩固有关于verilog代码的相关内容使用Verilog语言编写程序实现FPGA的串口输出了解熟悉GBK编码经过本次实验,我成功设计并实现了一个FPGA上的串口发送模块,该模块能够按照预定的波特率发送存储在数据数组send_data中的字符串。通过这个过程,我深入理解了串口通信的工作原理和在FPGA上实现它所需的关键技术。我首先定义了一个包含所有要发送字符的数组send_data,并为每个字符分配了相应的ASCII或GBK编码。

2024-05-11 19:10:54 992

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

在当前科技快速发展的时代,机器人操作系统(ROS)已经成为机器学习和人工智能领域的重要工具。学习、开发和测试ROS固然充满挑战,但同样充满了无限的可能性与机遇。比如,我们面临以下常见问题:针对上述挑战,ROS中的仿真环境如同一个安全网,为我们提供了一个风险低、成本低的测试平台。以下是对仿真环境的深入探讨:1. 概念解析仿真环境用于模拟真实机器人系统,在ROS中它主要包括三大组件:机器人建模(URDF)、仿真环境创建(Gazebo)和环境感知(Rviz)。这三者结合起来,为我们提供一个全方位、系统性的仿真实现

2024-04-27 15:10:10 1649

原创 Ubentu18.0+ORBSLAM2

了解ORBSLAM2的相关内容使用ORBSLAM2跑通TUM数据集使用将标定后的摄像头,进行数据采集,使用摄像头的数据进行环境检测ORB-SLAM2是一个著名的视觉SLAM(Simultaneous Localization and Mapping,即同时定位与地图构建)系统,由Juan D. Tardós、Raúl Mur-Artal等人开发。它在多种环境下都能实现高精度的实时定位和地图构建,以及大规模环境中的持久定位能力。

2024-04-27 00:06:51 799

原创 ROS标定海康威视摄像头

在进行相关的实验之前,让我们先来了解一下相关的内容!!!为什么要进行标定准确性: 通过标定摄像头,可以确保视觉系统捕获的图像准确反映现实世界中的对象。这对于机器人的导航、物体识别和操作等任务至关重要。畸变校正: 几乎所有的摄像头镜头都会引入某种形式的畸变,特别是广角镜头。畸变会使得图像呈现出凹凸不平的效果,通过标定过程可以识别并校正这种畸变。世界坐标系映射: 在进行物体抓取或场景理解时,必须将图像坐标转换为现实世界的三维坐标。标定过程能够建立图像像素与实际物理世界坐标之间的关系。标定的原理。

2024-04-25 22:24:31 1060

原创 opencv编程

OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,旨在提供广泛的图像处理和计算机视觉功能。它由一系列的函数和算法组成,可用于处理图像和视频数据,以及进行目标检测、特征提取、图像分割、摄像头标定等任务。OpenCV最初由Intel于1999年开发,并于2000年首次发布。自那时以来,它已经成为计算机视觉领域最受欢迎和广泛使用的库之一。

2024-03-09 21:33:14 793

原创 练习ROS动作编程

-----

2024-03-09 20:23:50 363

原创 ROS基础学习—话题、服务、动作编程

在ROS(Robot Operating System)中,工作空间(Workspace)是一个用户可以用来组织并构建自定义ROS软件包的文件夹结构。通常,这个工作空间被称为,得名于ROS的构建系统catkin。一个典型的catkin工作空间包含以下几个部分:src (source)目录:这是工作空间的核心目录,包含所有的ROS软件包源代码。当你创建一个新的ROS工作空间时,会从创建这个目录开始。任何你下载或创建的自定义ROS软件包都应该放在这个目录下。build目录。

2024-03-09 16:51:53 1268

原创 ROS1.0环境安装与配置----小海龟画圆

安装对应版本的ROS1.0软件熟悉ROS基本命令,并运行小海龟demo例子,同时用话题查看器查看两个node之间的消息传递用python写一个程序,控制小海龟走一个标准的圆形​ ROS(机器人操作系统)是一个机器人软件平台,旨在提供一种通用的软件框架,便于开发各种类型的机器人软件。ROS是一个开源的、跨平台的软件平台,可以在多种操作系统上运行,包括Linux、Windows和macOS等。ROS提供了一系列工具和库,支持机器人的各种功能,包括感知、规划、控制、通信、仿真等。ROS的主要特点。

2024-03-03 00:01:41 1247

原创 FPGA编程入门

全加器是数字电路中的一种基本逻辑电路,用于将两个二进制位和前一位的进位相加,产生一个二进制的和以及一个可能的进位。全加器有三个输入和两个输出,分别是两个二进制输入(A和B)以及前一位的进位(Cin),两个输出分别是和(Sum)和进位输出(Cout)。当输入位A、B和Cin都为0时,和位Sum为0,输出进位位Cout为0。当输入位A和B都为0,而Cin为1时,和位Sum为1,输出进位位Cout为0。当输入位A为0,B为1,而Cin为0时,和位Sum为1,输出进位位Cout为0。

2023-12-19 21:40:26 228

原创 嵌入式RTOS多任务程序设计

学习嵌入式实时操作系统(RTOS),以uc/OS-III为例,将其移植到stm32F103上,构建至少3个任务(task)两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制一个task以2s周期通过串口发送“hello uc/OS!欢迎来到RTOS多任务环境!uC/OS-III(MicroC/OS-III)是由Micrium公司开发的一款实时操作系统(RTOS),它专为嵌入式系统设计,提供了强大的多任务管理和实时性能。uC/OS-III的主要特征和功能。

2023-11-25 00:01:23 128

原创 STM32+IIC+OLED屏显温湿度

显示自己的学号和姓名显示AHT20的温度和湿度上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者一段歌词或诗词(最好使用硬件刷屏模式)。SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

2023-11-20 15:56:07 437

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

通过本次实验,深入了解了汉字的编码规则和字形数据存储格式,成功应用C/C++语言结合OpenCV库实现了图像处理的功能。通过实践,更加熟悉了编程环境的搭建和调用外部库的方法,提高了对汉字处理的实际应用能力。实验过程中,对区位码的编码规则和字形数据的读取理解更加深入,为后续图像处理和汉字显示的项目奠定了基础。

2023-11-20 00:06:01 559

原创 串口传输大型文件

串口传输文件是一种通过串行通信接口,在计算机和外部设备之间传输文件和数据的方法。串口通信是一种基于逐位传输的通信方式,通常用于短距离数据传输。在串口传输文件的实践中,通常使用串口转USB模块或串口转RS232模块,通过串口连接两台计算机或计算机与外部设备,以实现文件的快速传输。主要特点串口通信是逐位传输数据的方式,数据通过串口一位一位地进行传输。这种逐位传输的特性使得串口通信相对简单且容易实现。串口通信通常用于短距离传输,例如在同一台机器上或者两台计算机之间的连接。

2023-11-19 10:55:52 595

原创 IIC协议采集温湿度

AHT20是国内奥松生成的I2C接口的MEMS温湿度传感器,ADC位数为20Bit,具有体积小、精度高、成本低等优点。相较于AHT10,最显著的变化是体积由 541.6mm,缩小到 331.0mm。相对湿度精度 RH=±2%,温度精度 T=±0.3°C。相对湿度测量范围 RH=0~100%,温度测量范围 T=-40~85°C。从数据手册上看,AHT10/15/20只是供电电压不同,其他参数没有什么不同,其中AHT15具有聚四氟乙烯防水防尘膜,允许传感器在恶劣环境条件下使用(如喷淋水和高接触灰尘)。

2023-11-18 19:38:40 62

原创 超声波模块

HC-SR04超声波距离传感器的核心是两个超声波传感器。一个用作发射器,将电信号转换为40 KHz超声波脉冲。接收器监听发射的脉冲。如果接收到它们,它将产生一个输出脉冲,其宽度可用于确定脉冲传播的距离。就是如此简单!该传感器体积小,易于在任何机器人项目中使用,并提供2厘米至400厘米(约1英寸至13英尺)之间出色的非接触范围检测,精度为3mm。Operating Voltage工作电压直流5VOperating Current工作电流15毫安Operating Frequency运行频率。

2023-10-31 11:52:22 161

原创 HAL定时器&PWM&PWM捕获应用编程

定时器是用来定时的机器,是存在于STM32单片机中的一个外设。STM32总共有8个定时器,分别是2个高级定时器(TIM1、TIM8),4个通用定时器(TIM2、TIM3、TIM4、TIM5)和2个基本定时器(TIM5、TIM6),如下图所示:这三种定时器的区别如下:​​ 即:高级定时器具有捕获/比较通道和互补输出,通用定时器只有捕获/比较通道,基本定时器没有以上两者。PWM(脉冲宽度调制),它是一种利用微处理器的数字输出来对模拟电路进行控制的技术,也可以理解为是对模拟信号电平进行数字编码的方法。

2023-10-31 11:07:19 1098

原创 基于循环查询中断DMA的串口通信

官方一点的表达:DMA,全称为:Direct Memory Access,即直接存储器访问。直接存储器存取( DMA )用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须 CPU 干预,数据可以通过 DMA 快速地移动,这就节省了 CPU 的资源来做其他操作。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能嵌入式系统算法和网络是很重要的。

2023-10-30 23:38:17 217

原创 STM32简单串口通信

CH340是一个USB总线的转接芯片,实现USB转串口或者USB转打印口。在串口方式下,CH340提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。功能:串口发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志(HAL_TIMEOUT)。参数UART_HandleTypeDef *huart UATR的别名 如 : UART_HandleTypeDef huart1;别名就是huart1。

2023-10-28 15:11:09 248

原创 STM32 基于HAL库的LED流水灯

STM32CubeMX 是用于 32 位 ARM Cortex STM32 微控制器的图形工具。它允许对 STM32 微控制器和微处理器进行非常简单的配置,生成初始化 C 代码,还可以通过一步一步的操作为 Arm Cortex-M 内核或 Arm Cortex-A core 生成部分 Linux 设备树。它是 STMCube 生态系统的一部分,且可以作为独立应用程序或作为 Eclipse 插件集成在开发环境(STM32CubeIDE)中。本次实验是基于STM32的HAL库实现LED流水灯效果。

2023-10-23 17:18:00 589

原创 STM32 基于寄存器&标准外设库的LED流水灯

总的来说,基于寄存器的方法更加底层、灵活和精细,适合对硬件有更深入了解和更高级的控制需求。而基于固件库的方法更加高级、简洁和易于理解,适合快速开发和简单应用。选择哪种方法取决于个人的编程经验、项目需求和时间限制。通过这个实验,我对STM32的寄存器操作和HAL库的使用有了更深入的了解,并且能够根据项目需求选择合适的开发方法。器的方法更加底层、灵活和精细,适合对硬件有更深入了解和更高级的控制需求。而基于固件库的方法更加高级、简洁和易于理解,适合快速开发和简单应用。

2023-10-14 11:20:47 196

原创 温习全局常量、全局变量、局部变量、静态变量、堆、栈

C语言在内存中一共分为如下几个区域区域作用内存栈区存放局部变量名内存堆区存放new或者malloc出来的对象常数区存放局部变量或者全局变量的值静态区用于存放全局变量或者静态变量代码区二进制代码栈区(stack)–由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap)–般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式类似于链表。

2023-10-06 20:19:37 294

原创 Gcc编译器背后的故事

GCC(GNU C Compiler)原名GNU C语言编译器,是由GNU开发的编程语言译器,只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)。GCC 编译器是 Linux 系统下最常用的 C/C++ 编译器,大部分 Linux 发行版中都会默认安装。

2023-10-06 18:10:45 131

原创 GCC 生成静态库和动态库以及相关学习

静态库即静态链接库(Windows 下的 .lib,Linux 和 Mac 下的 .a)。之所以叫做静态,是因为静态库在编译的时候会被直接拷贝一份,复制到目标程序里,这段代码在目标程序里就不会再改变了。静态库的好处很明显,编译完成之后,库文件实际上就没有作用了。目标程序没有外部依赖,直接就可以运行。当然其缺点也很明显,就是会使用目标程序的体积增大。动态库即动态链接库(Windows 下的 .dll,Linux 下的 .so,Mac 下的 .dylib)。

2023-10-06 17:13:44 211

原创 P 哥的桶

P 哥现在有n个桶,它们排成了一排,这些桶可以装下任意多个球。每个球有一个固定的价值。P 哥时不时地会找新球,并把新找的球丢进某个桶里面。我们用1kx来表示 P 哥找了一个价值为x的球,并且丢进了k号桶里面。P 哥每次会在特定的桶里面拿出一些球。我们用2lr来表示 P 哥在l号桶到r号桶之间拿球。P 哥希望拿出来的球的价值异或和尽可能大。

2023-10-03 17:22:44 512

原创 嵌入式中的 register和volatile关键字

在嵌入式系统中,寄存器是位于CPU内部的高速存储器,用于存储临时数据和执行指令。使用寄存器变量可以提高程序的执行速度和效率,因为寄存器的访问速度比内存快得多。当使用register关键字声明变量时,编译器会尽可能地将该变量存储在寄存器中,以便快速访问。然而,嵌入式系统的编译器可能会忽略register关键字,因为寄存器的数量有限,编译器需要根据需要进行优化和分配寄存器。在嵌入式系统中,volatile关键字用于告诉编译器变量的值可能会在意料之外的时间被修改,因此编译器不应该对该变量进行优化。

2023-09-23 17:51:58 108

原创 STM32F103芯片的地址映射和寄存器映射原理讲解,GPIO端口的初始化基本步骤

​ 我的名字叫 GPIO(英语:General-purpose input/output),通用型之输入输出的简称,我的功能类似8051的P0—P3,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO),如当clk generator, chip select等。概述时钟是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。

2023-09-23 15:18:29 602

原创 Keil MDK5安装与stm32寄存器开发基础

Keil是德国知名软件公司Keil(现已并入ARM 公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些功能组合在一起。Keil是德国知名软件公司Keil(现已并入ARM 公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。

2023-09-22 22:44:58 3713 1

原创 学习使用Proteus 电路仿真软件------仿真51程序LED流水灯

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是比较好的仿真单片机及外围器件的工具。虽然国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

2023-09-20 23:29:07 2067 1

原创 试题 A: 子 2023

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。当遇到字符 ‘2’ 的时候字符串 “2” 的数量+1,字符串 “202” 的数量加上字符串 “20” 的数量。当遇到字符 ‘3’ 的时候字符串 “2023” 的数量加上字符串 “202” 的数量。当遇到字符 ‘0’ 的时候字符串 “20” 的数量加上字符串 “2” 的数量。小蓝想知道 S 中有多少种子序列恰好等于 2023?最后 “2023” 的数量就是答案。

2023-09-13 09:48:38 80 1

原创 N 架飞机准备降落到某个只有一条跑道的机场

对于 100% 的数据,1 ≤ T ≤ 10,1 ≤ N ≤ 10,0 ≤ Ti,Di,Li ≤ 100,000。即它最早可以于 Ti 时刻开始降落,最晚可以于 Ti + Di 时刻开始降落。对于每组数据,输出 YES 或者 NO,代表是否可以全部安全降落。一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落。安排第2 架飞机于20 时刻开始降落,30 时刻完成降落。安排第1 架飞机于30 时刻开始降落,40 时刻完成降落。安排第3 架飞机于0 时刻开始降落,20 时刻完成降落。

2023-09-13 07:39:19 217 1

原创 子串简写---

例如 internationalization 简写成 i18n,Kubernetes 简写成 K8s,Lanqiao 简写成 L5o 等。对于一个字符串,只保留首尾字符,将首尾字符之间的所有字符用这部分的长度代替。的字符串都可以采用这种简写方法(长度小于 K。符合条件的子串如下所示,中括号内是该子串。的数据,2≤K≤|S|≤10000。的数据,2≤K≤|S|≤5×105。的字符串不配使用这种简写)。结尾的子串可以采用这种简写?第二行包含一个字符串 S。第一行包含一个整数 K。

2023-09-12 07:56:50 176

原创 冶炼金属----

每条记录都是独立的,这意味着上一次没消耗完的普通金属 O 不会累加到下一次的冶炼当中。小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。个普通金属 O 恰好可以冶炼出一个特殊金属 X,当普通金属 O 的数目不足。的最小值和最大值分别可能是多少,题目保证评测数据不存在无解的情况。可能的最小值和最大值,中间用空格分开。条冶炼记录,每条记录中包含两个整数。个普通金属 O,最终冶炼出了。条冶炼记录,请你推测出转换率。,可以看到符合所有冶炼记录。,可以看到符合所有冶炼记录。,表示冶炼记录的数目。

2023-09-11 15:39:12 158

VID_20240520_145445.mp4

VID_20240520_145445.mp4

2024-05-20

空空如也

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

TA关注的人

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