- 博客(23)
- 收藏
- 关注
原创 System-Verilog
通过学习和掌握SystemVerilog的基本语法,重新设计之前在Verilog中实现的练习项目,如流水灯、全加器、VGA显示和超声波测距,并完成相应的testbench仿真,最终在DE2-115开发板上实现这些项目。
2024-06-03 20:43:20 521
原创 红外超声波雷达
1、RCC配置外部高速晶振——HSE2、SYS配置:Debug设置成Serial WireADC1配置:配置ADC-IN1模数转换TIM2配置:设置定时器TIM2每1us向上计数一次,通道1为上升沿捕获并连接到超声波模块的ECHO引脚GPIO配置:PA5接到了HC-SR04的TRIG触发引脚,默认输出低电平TIM1配置:由上面可知HC-SR04的使用需要us级的延迟函数,HAL库自带只有ms的,所以需要自己设计一个定时器。
2024-05-27 15:43:00 982
原创 HLS入门
高级语言的抽象程度较高,而硬件设计需要精确的细节控制,这两者之间的映射是一个复杂的过程。:尽管HLS提高了抽象级别,但设计者仍然需要学习如何有效使用HLS工具,以及如何编写适合硬件实现的高级语言代码。如何在高级语言级别进行有效的调试,并在硬件级别验证功能正确性,是HLS面临的重要问题。手工设计可以进行更细粒度的优化,而HLS工具的自动化优化难以达到相同的精度。:HLS在处理复杂的控制逻辑时可能表现出局限性。总体来说,HLS作为一种前沿的设计技术,正在不断进步,并有望在未来的硬件设计中发挥越来越重要的作用。
2024-05-24 21:10:54 1084
原创 基于FPGA的VGA协议实现
VGA通过引脚的模拟电压(0V-0.714V)显示红绿蓝三种颜色,不同的电压值对应不同的颜色。VGA驱动显示器用的是扫描的方式,一般是逐行扫描。逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧后,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。
2024-05-20 10:59:40 757
原创 Nios-II编程 串口
1.完成基本的硬件部分设计参考https://blog.csdn.net/qq_57160761/article/details/1299891712.添加其他IP核添加UART在搜索框上输入uart,选择UART(RS-232 Serial Port),点击Add,之后进行数据设置,保持默认设置连接时钟和复位,以及数据位,中断的设置,Export设置3.系统分配地址选择System->Assign Base Address4.使用FPGA资源。
2024-05-12 12:09:01 301 1
原创 Nios-II编程 灯
初次尝试NIOSII软核开发,实验本身并不困难,只是过程繁琐,需要仔细一点,花费较多时间。在进行kernel的连线时一定要仔细,不要连错,否则会导致后面的过程出错。
2024-05-12 11:59:32 878 1
原创 ORB-SLAM2
从github.com下载ORB-SLAM2的代码。地址是:ORB-SLAM2可以在github上直接download ZIP压缩文件。也可在安装git之后,用以下命令在终端上下载。
2024-04-27 21:35:36 1056 1
原创 ROS机器
(1)在URDF建模和xacro建模中我们已经完成了关于如何创建一个小车模型,这里以在xacro建模篇中构建的小车模型为例,修改其对应的碰撞属性和惯性矩阵,将其导入gazebo中显示。在xacro文件夹中新建“my_camera.urdf.xacro”"“my_car_camera.urdf.xacro”“my_laser.urdf.xacro”文件。在urdf文件夹下新建一个xacro文件夹,在文件夹中新建my_base.urdf.xacro文件并编写。(3)建立launch文件,urdf文件。
2024-04-27 21:21:25 484
原创 ROS通信编程
通过这次的学习,我深入了解了ROS(机器人操作系统)的核心概念,包括话题、服务和动作编程。话题使得不同模块之间可以实时地交换数据,服务则提供了一种请求-响应的通信模式,而动作编程则允许执行长时间运行的任务。通过实际练习,我不仅学会了如何创建和发布话题消息、编写服务和动作服务器,还学会了如何编写客户端来与这些服务器进行通信,从而初步掌握了ROS的基本编程技能。这些知识的掌握使我对ROS的应用领域和机制有了更深入的理解。
2024-03-15 10:52:42 1780 1
原创 ROS1.0环境安装与配置
ROS(Robot Operating System),全称为机器人操作系统,是一个专为机器人软件开发设计的灵活框架。1.核心功能ROS的核心功能包括硬件抽象、设备驱动、库函数、消息传递机制、包管理等,这些功能为机器人的各种复杂任务提供了支持。2.分布式通信机制ROS采用节点(Node)的概念来组织软件组件,节点之间通过发布(Publish)和订阅(Subscribe)模式进行消息传递,这种机制使得不同模块间可以高效地通信。3.灵活性和可扩展性。
2024-03-03 10:58:41 361
原创 第16周实验-用Verilog设计1个单周期8位CPU_模拟8051主要功能和部份指令
单周期CPU可以看成由数据通路和和控制部件两大部分组成。数据通路是指在指令执行过程中,数据所经过的路径和路径上所涉及的功能部件。而控制部件则根据每条指令的不同功能,生成对不同数据通路的不同控制信号,正确地控制指令的执行流程。因此,要设计处理器,首先需要确定处理器的指令集和指令编码,然后确定每条指令的数据通路,最后确定数据通路的控制信号。
2024-01-05 21:18:49 921 1
原创 FPGA编程入门
本次实验复习了Verilog语言的一些基本语法与QuartusⅡ的一些基础设计、调试功能。设计并实现了半加器,全加器,四位全加器,使我对他们的电路结构有了进一步的理解。
2023-12-19 20:41:56 1796 1
原创 嵌入式RTOS多任务程序设计
如果我们需要处理器完成的任务比较单一,可以不使用操作系统;如果需要处理器完成的任务比较多,为了便于管理可以引入轻巧的实时操作系统。在进行uCOS移植时,务必要仔细,否则在编译时很容易报一大堆错误,究其原因只是因为在移植过程中某一个步骤忘记了,参数、文件路径的设置等问题,务必谨慎!逻辑分析仪是一个较好的波形分析设备,操作并不困难。整个实验过程并不复杂,只需要按部就班的进行即可完成移植和任务执行。
2023-11-30 13:56:02 1405
原创 stm32通过I2C接口实现温湿度(AHT20)的采集
I2C总线上允许连接多个微处理器以及各种外围设备,如存储器、LED及LCD驱动、A/D及D/A转换器等。为了保证数据可靠地传送,任一时刻总线只能由某一台主机控制,各微处理器应该在总线空闲时发送数据。通过本次实验,详细了解到了I2C总线协议,以及AHT20温湿度传感器的使用,受益匪浅!
2023-11-15 19:08:49 148
原创 定时器&PWM应用编程
PWM工作原理PWM是一种周期性的方波信号,通过调整方波的高电平时间(占空比)来控制输出信号的特性。PWM信号的频率和占空比可以根据应用需求进行配置。在STM32PWM模块中,通过设置定时器的计数周期和比较值,可以实现不同频率和占空比的PWM输出。STM32PWM模块STM32PWM模块通常由一个或多个通用定时器(TIM)和相关的GPIO引脚组成。通用定时器提供了灵活的PWM配置选项,可以根据需要进行定时器和GPIO引脚的映射、预分频设置、计数周期和比较值的设定等。PWM参数配置。
2023-11-03 18:59:37 236
原创 基于hal库的串口中断通信和DMA通信
a.选择芯片STM32F103c8T6在这里插入图片描述b.RCC配置:c.USART1配置:d.配置项目名、项目存放路径、使用编辑器、HAL库所使用的版本:e.Code Generate配置:1.程序要点使能 RX 和 TX 引脚 GPIO 时钟和 USART 时钟;初始化 GPIO,并将 GPIO 复用到 USART 上;配置 USART 参数;配置中断控制器并使能 USART 接收中断;使能 USART;在 USART 接收中断服务函数实现数据接收和发送。配置同上2.程序
2023-11-02 19:40:20 642
原创 基于寄存器&标准外设库的LED流水灯
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP:将GPIO端口配置为推挽输出模式,即可以输出高电平或低电平。GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All:将GPIO端口配置为初始化所有的引脚,即初始化16个引脚。每四位控制一个端口,因此,用十六进制数刚好能够描述每一位的状况。每个GPIOX都要16个输入、输出端口,即PX0-PX15,而GPIO_CRL则控制的是PX0-PX7,GPIO_CRH控制的是PX8-PX15。
2023-10-14 16:32:09 197 1
原创 仿真和单片机点亮LED
程序能够正常运行,实现了预期的功能,通过本次实验,我们学习了如何搭建开发环境、创建新项目、编写基本的STM32/51单片机程序,虽然没有单片机烧录,但这夜为进一步学习和开发更复杂的单片机应用奠定了基础。二者的性能不一样,51单片机是8位的,写代码时要考虑8个位置上的数值,STM32是32位的,写代码时要考虑32个位置上的数值,所以51单片机操作起来更简单;register称为寄存器型,尽量让这个被修饰的变量存放在CPU的寄存器中供程序进行读写,因为它的值很少被修改,直接通过寄存器访问,就能提高程序的性能。
2023-09-24 16:46:35 326 1
原创 在Ubuntu上使用gcc和Makefile来编译C语言程序
经过上面的练习,可以使我们初步认识Linux,并熟悉一些指令。同时通过一些简单程序的练习,让我们更加熟悉程序生成的过程。
2023-09-14 19:27:41 81 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人