自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HLS入门---流水灯闪烁

HLS(High-Level Synthesis,高级综合)是一种将高级硬件描述语言(如C/C++)转换为硬件描述语言(如Verilog或VHDL)的过程。这种技术允许设计者使用类似于软件编程的方法来设计硬件,从而提高设计效率和灵活性。HLS的主要特点包括:高级语言编程:使用C/C++等高级语言进行设计,使得设计过程更加直观和易于理解。自动化综合:HLS工具可以自动将高级语言代码转换为硬件描述,简化了设计流程。性能优化:HLS工具能够进行资源优化和时序优化,以满足特定性能要求。

2024-06-12 14:58:52 434

原创 SystemVerilog的基本语法和流水的实现

SystemVerilog中的模块(module)定义与Verilog类似,但增加了一些新的结构。

2024-06-03 22:12:43 1023

原创 RS485串口与Modbus通信协议

Modbus协议是一种工业自动化领域中广泛使用的串行通信协议,它由Modicon公司(现为施耐德电气的一部分)在1979年开发。Modbus协议设计用于连接工业电子设备,如可编程逻辑控制器(PLC)、传感器、执行器等,以实现设备间的通信和数据交换。特点:开放性:Modbus是一个开放标准,这意味着任何制造商都可以实现Modbus协议,而无需支付专利费用。简单性:协议的设计简单,易于实现,适用于多种硬件平台。灵活性:支持多种通信介质,包括RS232、RS485、以太网等。

2024-05-27 21:12:00 847

原创 基于STM32和HC-SR04的超声波测距实验

HC-SR04是一款广泛使用的超声波测距模块,它能够通过发射和接收超声波来测量距离。HC-SR04主要包括三个模块发射器:一个可以发射超声波的压电陶瓷片。接收器:一个可以接收超声波的压电陶瓷片。控制电路:包括一个控制芯片,用于控制发射和接收超声波的时序。四个接口VCC:电源输入,通常为5V。Trig:触发信号输入。Echo:回声信号输出。GND:地线。

2024-05-27 21:00:56 398

原创 基于DE2-115的VGA协议显示实验

VGA(Video Graphics Array)是一种视频传输标准,由IBM在1987年推出,主要用于模拟信号的视频传输。它在彩色显示器领域得到了广泛的应用,具有分辨率高、显示速率快、颜色丰富等优点。VGA的显示原理基于扫描方式,通过行同步信号(HSYNC)和场同步信号(VSYNC)来完成一帧图像的像素点扫描。VGA接口共有15个针脚,其中RGB三路输入为模拟量输入,而行和场为数字输入。VGA的时序标准非常重要,它包括行同步和场同步两个部分。

2024-05-24 13:11:26 368

原创 Nios II 流水的灯实验

点击右键生成端口,将端口分别重命名为clock,out_led,rst_n,编译,编译完成后分配管脚。选择导入sopcinfo文件,Hello world 模板。将时钟频率设计为50MHz,和使用的芯片保持一致。将hello world 代码替换成以下代码。双击空白处,将我们刚刚生成的bsf文件导入。点击新建项目,根据自己的需求选择芯片。右键将Nios II 重命名为cpu。双击CPU进入以下界面更改重置容器。依次添加下列部件,默认设置即可。如果编译报错,添加pip文件。重命名为pio_led。

2024-05-14 21:36:19 377

原创 【嵌入式应用学习笔记05】ROS仿真配置及控制小车

文章目录使用ROS系统配置仿真环境使建模小车运动准备工作创建小车模型创建仿真环境启动仿真环境控制小车运动使用ROS系统配置仿真环境使建模小车运动在本教程中,我们将介绍如何使用ROS(Robot Operating System)系统配置仿真环境,以实现建模小车的运动。ROS是一个用于机器人软件开发的框架,它提供了一套用于管理硬件、驱动程序和应用程序的工具和库。通过使用ROS,我们可以更方便地开发和测试机器人应用程序。准备工作在开始之前,请确保您已经安装了以下软件:ROS:请根据您的操作系统安装相

2024-04-27 19:53:00 1230

原创 【嵌入式应用学习笔记 04】ROS-URDF机器人建模

URDF,全称为统一机器人描述格式(Unified Robot Description Format),是一个基于XML的语法框架,用于在机器人操作系统(ROS)中描述和定义机器人模型。

2024-04-24 15:56:50 396

原创 【嵌入式应用学习笔记03】Ubuntu 20.04的OpenCV基础应用

新建一个code文件夹,将处理图片的c程序放在文件夹中,放一张test.jpg图片在code文件夹下。在code文件夹中放在一个名为man.mp4的视频。即可在文件夹中获得一个名为test.png的图片。复制一下c代码到test.cpp中。创建test2.cpp。

2024-03-15 19:33:23 478 1

原创 【嵌入式应用学习笔记02】ROS1.0控制小乌龟

命令作用rosrun用于启动ROS节点 基本格式为 rosrun 包名 可执行文件名 ,其中可执行文件可以为编译后的cpp文件或者具有可执行权限的py文件rosnode管理并检查ROS节点状态,如rosnode list列出所有运行的节点,rosnode info 节点名称提供指定节点的详细信息rostopic操作和显示话题信息。使用rostopic list -v可以查看所有活跃话题以及它们的发布者和订阅者信息,rostopic echo 话题名称可以打印出该话题接收到的消息内容。

2024-03-03 18:43:46 1525

原创 【嵌入式应用学习笔记01】ROS1.0安装及环境开发配置

ROS系统,即机器人操作系统(Robot Operating System),在2007年由斯坦福大学人工智能研究室和Willow Garage公司合作开发。ROS是专为机器人软件开发设计的一套电脑操作系统架构,通常部署运行在Linux操作系统上。ROS被广泛应用于机器人研究及商品开发中,在无人驾驶汽车,无人机,服务机器人等领域,ROS被广泛的应用。同时,ROS作为一个开源的元级操作系统,ROS也拥有一个活跃的社区环境,为开发者提供了丰富的技术资源和支持。

2024-02-28 12:06:00 1692 1

原创 STM32F103C8T6基于HAL库移植uC/OS-III系统及任务分配的学习记录

uC/OS-III是一个微型的C语言编写的操作系统第三版,是一个可升级、可固化的实时内核。它是在总结用户使用uC/OS-II反馈和经验的基础上诞生的,相比于uC/OS-II,删除和更新一些少用的功能,添加更加高效的功能和服务。uC/OS-III支持现代的实时内核所期待的大部分功能,例如资源管理、同步、任务间的通信等,同时也有一些特有的功能,例如时间片轮转法(round robin)。

2023-11-30 10:45:16 113

原创 关于i2c协议及OLED显示汉字的学习记录

汉字点阵的原理是将每个汉字看作一个矩形点阵,然后根据每个字节所表示点的不同,将汉字分为横向矩阵和纵向矩阵。在横向矩阵中,每个字节的每个位都代表一个汉字的一个点,0代表没有点,1代表有点。在汉字的存储和显示中,字库中的每个汉字字符都有一个唯一的区位码,通过这个区位码可以确定一个惟一的汉字或符号。链接:https://pan.baidu.com/s/1HhKW_2IWbnlBQPeqk7xZ4Q?在OLED屏上显示汉字需要进行汉字取模,这里通过汉字取模软件进行取模。使用以下命令,即可实现汉字的滚动效果。

2023-11-26 18:16:30 143 1

原创 关于学习STM32基于iic协议的温度湿度采集记录

它是由双向数据线SDA(serial data)和单向时钟SCL(serial clock)构成的串行总线,可发送和接收数据,两条线可以挂多个设备。硬件IIC则是一块硬件电路,它对应芯片上的I2C外设,具有相应的I2C驱动电路,其使用的I2C管脚也是专用的。软件IIC是一种通信方式,它使用单片机的两个I/O端口模拟IIC,通过软件控制管脚状态以模拟I2C通信波形,同时软件模拟寄存器的工作方式。总体来说,硬件IIC的效率要远高于软件的,而软件IIC由于不受管脚限制,接口比较灵活。

2023-11-14 08:37:47 73

原创 使用PWM波点呼吸灯的学习记录

PWM(Pulse Width Modulation)即脉冲宽度调制技术,是一种通过调节脉冲信号的占空比来实现模拟信号的调节的技术。在PWM控制中,周期性的方波称为PWM波,其占空比是指高电平时间与周期的比值。PWM波信号可以通过控制电路的输出电平来实现对外设的控制,如对LED的亮度、电机的转速等。通常使用定时器模块来生成PWM波,定时器在每个周期内发出固定的时间间隔中断,根据设定的占空比,每个周期内的高电平时间和低电平时间不同,从而实现对PWM波的控制。

2023-11-05 20:26:34 118

原创 关于串口通信中断/DMA的实现的学习记录

本次实验我们使用到的硬件有STM32F103C8T6芯片,软件我们使用KeilMDK与STMCubeMX进行编程,使用野火串口调试工具进行结果的查看。当然也可以使用其他的串口调试工具进行查看结果。这里我们使用的是STM32F103C8T6系统板,打开STM32CubeMX软件,选择对应的芯片,开始配置。在刚才配置项目的基础上,我们打开DMA通道。使用STMCubeMX配置项目。在while循环中写入以下代码。在main函数中修改成如下代码。烧录程序之后打开串口调试工具。打开串口测试工具进行结果查看。

2023-11-04 22:42:03 52 1

原创 关于串口通信的学习记录

题目要求1)STM32系统给上位机(win10)连续发送“hello windows!win10采用“串口助手”工具接收。2)在完成以上任务基础,继续扩展功能:当上位机给stm32发送一个字符“0”后,stm32暂停发送“hello windows!发送一个字符“1”后,stm32继续发送;

2023-10-29 22:02:39 35 1

原创 stm32HAL库点灯与程序外部中断的学习记录

使用HAL完成点灯与中断控制比使用标准库要简单,无论是配置管脚还是书写代码,无疑HAL更加方便,且可读性更好,但HAL库的运行速度显然不如标准库,所以在编写高性能程序的时候,标准库是更好的选择。HAL的优点在于易学,易上手,代码的可读性高,缺点在于运行效率比较慢。

2023-10-21 10:48:28 97 1

原创 stm32使用寄存器以及标准库点灯的学习记录

上述代码我们使用标准库进行点灯操作,首先我们开启GPIO的时钟外设,然后创建一个结构体,设置结构体内部的参数来设置我们GPIO的引脚输出模式,然后通过标准外设库GPIO_ResetBits()和GPIO_SetBits()两个库函数对外设GPIOA的串口进行高低电平的设置,通过延时函数和间断的设置串口的高低电平,我们可以实现点亮流水灯的操作。使用寄存器进行点灯操作不需要用到固件库,此外在之前的博客中我比较详细的介绍了该如何使用寄存器进行点灯,在这里 我就不过多的赘述了,详情可以查看我以前的博客。

2023-10-16 20:03:25 154 1

原创 关于c语言中局部变量,全局变量,栈,堆,等概念的理解及在ubuntu系统和stm32中的验证

需要注意的是,STM32并没有像PC机那样的操作系统来管理堆栈,所以STM32中的堆栈通常只被用于函数调用和返回,而不会用于更复杂的用途,如线程或中断服务程序的执行。全局变量在定义它的文件的所有函数中都是可见的,而在其他文件中则不可见。在C语言中,局部变量是在函数内部定义的变量,只在其所在的函数范围内有效。STM32中的堆栈(Stack)是一个重要的内部数据结构,用于保存函数调用信息,包括参数、局部变量和返回地址。可以看到stm32的栈区的地址值是从上到下减小的,堆区则是从上到下增长的。

2023-10-05 22:48:51 155

原创 gcc编译静态库和动态库的区别

通过使用size命令我们看到,使用静态库生成的可执行程序比使用动态库生成的可执行文件大小要大,而原因我们可以再删除动态库和删除静态库之后的程序运行测试中看到,静态库是再编译程序时,直接链接,动态库是在程序运行时再访问链接。可以看到我们执行了rm命令之后(注意rm删除的文件不可恢复,谨慎使用),文件中没有了静态库libsub.a,但sub程序依旧可以得出结果,说明在编译链接时,静态库直接链接到程序之中,程序在运行时不需要再访问静态库。使用ls命令查看文件,我们看到动态库libsub.so创建成功。

2023-09-29 21:58:04 114 1

原创 51单片机和stm32单片机的点灯操作

然后我们找APB2外设使能时钟寄存器的偏移地址,复制偏移地址,加上面AHB的寄存器时钟地址,得到0x40021018,这个地址,然后我们配置CPIOC的使能时钟,先把刚才的地址置“1”后进行位操作(移动4位),就可以得到时钟C的地址,然后我们通过强制转化将其转化为指针类型,在进行取地址的操作。接下来我们放置LED灯,在右侧的固件库中搜索 LED-YELLOW,点击选中LED灯,顺时针旋转元件,将8个LED灯摆放成如下图的模样,放置电阻,将电阻值从10k改为300,以便等可以亮起来,接下来链接管脚,电源。

2023-09-26 17:34:12 335 1

原创 初步了解不同环境下c程序的编译机制

本次实验我在两种不同的系统和环境上使用不同的编译方式对main1.c等c程序进行了编译和运行,这次实验使我进一步了解了c语言程序转化为可执行文件的具体过程。程序进行了编译和运行,这次实验使我进一步了解了c语言程序转化为可执行文件的具体过程。

2023-09-10 14:54:54 54 1

原创 TypescriptSummary

TypeScript 是一种由 Microsoft 开发和维护的编程语言,它是 JavaScript 的一个超集,包含了 JavaScript 所有的语法和特性,并且添加了一些新的语法和特性。TypeScript 可以在编写代码时提供更好的类型检查和编程支持,在代码执行前发现和解决常见的 JavaScript 错误,提高了代码的可靠性和健壮性。

2023-06-25 09:15:50 53

原创 JavaScriptSummary

JavaScript是一种动态、弱类型的脚本语言,用于为网页添加交互、动态效果和数据处理等方面。最初的JavaScript是由Netscape公司的Brendan Eich在10天内创建的,并且最初只用于浏览器的客户端。随着Web技术的发展,JavaScript在Web开发中变得越来越重要,它可以用来创建交互式的Web应用程序或网站,并且也可以用于服务器端编程。

2023-06-25 08:41:59 122

原创 Css学习总结

CSS (Cascading Style Sheets) 是一种用于描述文档样式和外观的计算机语言。它可以控制网页中HTML元素的外观,包括文字的字体、大小、颜色,背景色,边框等等。CSS 将表达文档结构和表现样式分离开来,使得在复杂的应用中,HTML 只需要关注文档的语义结构,而样式和布局则由 CSS 职责处理。CSS 规则由选择器和一组声明构成。选择器通常是 HTML 元素,也可是其他元素,例如文档、ID 或类等。声明由一个属性和一个值组成。以冒号分隔。

2023-06-25 00:35:48 155

原创 html初学总结

HTML是一种超文本标记语言(HyperText Markup Language)的缩写,是一种专门用来设计和编辑网页的语言,HTML语言是一种超文本标记语言,使用HTML语言编辑的文档后缀一般为.html,是一种纯文本的文档。

2023-06-15 21:06:31 61 1

空空如也

空空如也

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

TA关注的人

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