自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 笔记本系统盘移植与windows&&Linux双系统安装

笔记本内存不够了,之前给笔记本添加了一个机械硬盘,也几乎爆满了,于是购置了1T的固态硬盘,打算用这个固态硬盘安装双系统,剩余空间用来存放游戏,机械硬盘用来存放之前的各种有用数据。网上教学杂,所以打算总结一下,希望帮到同样有上述打算的朋友。注:请查看笔记本是否有能拓展硬盘的空间,更换硬盘过程中一定记得断开电源,打开后盖的时候轻拿轻放以免造成更多损失,如果对自己没自信就找专业人员帮忙吧。

2024-06-19 20:27:20 796

原创 基于Chisel语言的FPGA流水灯程序

Chisel 是一种构建硬件描述语言(HDL)的高级编程语言,它允许硬件设计师以更抽象的方式编写代码,然后编译生成低级的硬件描述语言(通常是Verilog)代码,进而用于 FPGA 或 ASIC 的设计实现。Chisel 由加州大学伯克利分校的伯克利软件定义硬件(BSDH)项目开发,其主要目标是提高硬件设计的生产效率、可读性和可维护性。概念:Chisel 结合了现代软件工程的原理与硬件设计的实践,支持面向对象编程特性,如类、继承、多态等,同时也引入了静态类型和类型安全的概念,有助于在设计阶段捕捉错误。

2024-05-31 19:43:54 778

原创 红外超声波雷达测距

HC-SR04:HC-SR04超声波测距模块提供2cm~400cm的测距功能,精度达3mm。以下图片截取自深圳市捷深科技有限公司的《HC-SR04超声波测距模块说明书》通过时序图我们可以知道,我们给HC-SR04发送长达10us的TTL脉冲,然后模块就会进行测距,测距的结果通过回响信号传达,回响的TTL电平信号时间即是超声波从HC-SR04模块发出,触碰到障碍物后返回到HC-SR04模块的时间总和。TTL是逻辑电平标准,当电压达到2.4V5V之间,那么为逻辑1(高电平),电压在0V。

2024-05-29 10:28:58 928

原创 HLS入门

理解HLSHLS在Quartus上的实现。

2024-05-25 18:07:35 1052

原创 基于FPGA的VGA协议实现

有些不带VGA接口而带有DVI(Digital Visual Interface数字视频接口)接口的显卡,也可以通过一个简单的转接头将DVI接口转成VGA接口,通常没有VGA接口的显卡会附赠这样的转接头。VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型,绝大多数显卡都带有此种接口。代码中这几个部分是控制显示长度的,根据实际情况调整,256是代表宽度,420是代表逆向打印的起始位置,164是起始位置减去长度(420-256),一个汉字16位,可以根据实际情况计算宽度。

2024-05-21 15:32:32 1075

原创 DE2-115串口通信

在Nios II编程部分,我学会了如何使用Quartus软件和Platform Designer(或Qsys)来搭建硬件环境,包括选择适当的开发板、添加必要的硬件模块(如Nios II处理器、存储器、UART等),并进行模块间的连接和参数配置。总体来说,这次实验不仅增强了我的动手实践能力,也加深了我对FPGA设计、Nios II软核开发以及跨平台串口通信等知识的理解。这些经验对于我未来解决类似的问题非常宝贵。在Verilog编程部分,我编写了一个简单的UART收发模块,并实现了基本的串口通信功能。

2024-05-12 14:42:52 898

原创 DE2-115开发板基于verilog和nioⅡ的流水灯实现

硬件编程的直观性:使用Verilog直接编程,可以直观地控制硬件行为,如LED的亮灭顺序,这种方式更接近底层硬件,对FPGA的资源利用和性能优化有更直接的控制。·软件编程的便利性:Nios II软核提供了一个类似于通用处理器的环境,可以使用高级语言(如C语言)进行编程,这使得开发过程更加简便,代码更易于理解和维护。·灵活性与可移植性:软件编程在灵活性和可移植性方面具有优势,因为编写的软件可以在不同的硬件平台上运行,而硬件编程则更依赖于特定的FPGA架构。

2024-05-12 12:16:04 2131

原创 orbslam2基础

ORB-SLAM2是一种用于单目、双目和RGB-D摄像头的实时视觉定位与地图构建系统。它是由伦敦帝国学院的Raul Mur-Artal、Juan D. Tardós和J. M. M. Montiel等人开发的,是ORB-SLAM的改进版本。ORB-SLAM2结合了特征提取、跟踪、建图和定位的功能,可以在实时性和鲁棒性之间取得平衡,适用于各种环境和场景。它在计算机视觉和机器人领域得到广泛应用,可以用于自主导航、增强现实、室内导航等多个领域。

2024-05-08 00:10:36 806 2

原创 ROS摄像头标定

通过实际操作,我更加深入地理解了摄像头标定的原理和方法,也提高了自己的动手能力和解决问题的能力。在标定过程中,我参考了ROS社区的大量教程和文档,这些资源对我解决遇到的问题起到了很大的帮助。这让我感受到了ROS社区的强大凝聚力和支持力。总之,这次ROS摄像头标定的经历让我深刻体会到了ROS在机器人视觉系统中的重要性和实用性,也让我更加深入地了解了摄像头标定的原理和方法。在进行ROS摄像头标定的过程中,我深刻体会到了ROS(Robot Operating System)在机器人视觉系统中的重要性和实用性。

2024-05-07 09:27:19 758

原创 ROS机器人仿真基础

目录一、 内容二、 语法解读2.1 urdf 语法2.2 launch 语法2.3 xacro语法2.4 gazebo 语法2.5 运动语法三、 机器人仿真3.1 准备工作3.2 编写代码四 、 参考链接一、 内容ROS机器人的相关语法解读ROS小车具体仿真实现二、 语法解读相关语法部分请参考结合官方链接进行对照:链接2.1 urdf 语法URDF(Unified Robot Description Format)是一种XML文件格式,用于描述机器人模型的结构、几何形状、运动学、传感器

2024-04-25 16:29:29 1228

原创 VSCODE自定义代码片段简述与基础使用

① 光标位置控制。

2024-04-23 00:58:44 4173

原创 Tang Nano 20K 使用分享

Tang Nano 20K 是采用高云半导体 GW2AR-18 QN88 的一款核心板,芯片内部具有 20736 个逻辑查找表(LUT4) 和 15552 个寄存器(FF),内部有两个 PLL,还带有多个 DSP 单元支持 18位 x 18位 的乘法运算来加速数字运算。板载 BL616 芯片来作为 FPGA JTAG 下载器和与 FPGA 通信的串口。板上默认使用 27MHz 晶振用于倍频出 HDMI 显示所需要的时钟,还额外搭载 MS5351 时钟发生芯片来随意生成多种所需要的时钟。

2024-04-03 11:59:32 899

原创 ROS通信编程

A:在示例代码1第9行的 while 循环中,Mat 是 OpenCV 中表示图像的数据结构,它是一个矩阵类,用于存储图像的像素信息。动作(Action)是ROS中一种用于实现长时间运行任务的机制,我学习了如何创建和使用动作服务器和客户端程序,并实现了一个模拟机器人运动到目标位置的过程。简而言之,这条编译命令通过 pkg-config 工具获取了 OpenCV 库的编译选项,然后将这些选项传递给 gcc 编译器,以确保编译和链接过程中正确地包含了 OpenCV 的头文件和链接了 OpenCV 的库文件。

2024-03-12 22:14:33 934

原创 ROS1.0环境安装与配置

1.在Ubuntu16/18/20系统中,安装对应版本的ROS1.0软件. 注意记录和分析所遇到的各式问题和解决措施。(注意:电脑安装ROS有困难的同学,可以采用直接导入Ubuntu18+ROS 镜像的方式,节约时间。镜像文件很大,几个分卷压缩包解压后约7GB,请从百度网盘下载。链接:https://pan.baidu.com/s/15CG3mXpxpqAYeBafS-vc8w 如果有提取码,就是 2022。安装后的ubuntu系统登录密码是1234 )

2024-03-03 10:50:38 1064

原创 用Verilog设计1个单周期8位CPU_模拟8051主要功能和部份指令

与非门输入输出如图绘制:1)当s为1时,输出o与输入i保持一致,相当于把i的数值存到了o处;2)当s为0时,输入i的变化不影响输出o,输出o的值保持原来的值不变。可以绘制完可以测试一下封装。

2024-01-08 09:55:59 1989

原创 FPGA编程入门

通过原理图输入和Verilog编程两种方式,我完成了1位全加器的设计,并通过串行级联得到4位全加器的原理图设计。再改用 Verilog编程(3种模式:门电路、数据流和行为级描述),完成这个4位全加器设计,并观察Verilog代码编译综合后生成的 RTL电路,与之前电路图设计的4位全加器电路进行对比。然后封装这个1位全加器为自定义的一个子电路模块(比如名称为OneAdder),然后新建一个项目,用1位全加器串行级联方式完成一个4位全加器的设计,并进行功能测试。

2023-12-22 13:30:33 959

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

当一个线程的优先级独一无二的时候,它的时间片这个参数将失去作用,我们不要认为上面的两个线程运行完 20 个系统 ticks 后就会主动交出 cpu 使用权,当运行完20 个 ticks 后如果它不需等待任何资源,也不主动让出 cpu使用权的话,它还会继续运行,时间片这个参数只在具有相同优先级的线程之间起作用,可是即便如此,这个参数也不能设为 0,因为你不知道后续是否还会创建线程。解释一下这个文件,对系统的裁剪也是在这个头文件里面进行裁剪的,通过对宏定义的修改,使用或者关闭相关功能。

2023-11-27 13:15:39 1017 1

原创 汉字点阵与OLED屏显

任务1: 串口传输文件的练习在这个任务中,我通过搭建串口连接,利用USB转RS232模块和杜邦线将两台笔记本电脑相连接。使用串口助手等工具软件进行文件传输实践,包括图片、视频和压缩包等文件的传输。通过调整波特率、文件大小等参数,我深入了解了这些参数之间的关系,并对比实际传输时间。这任务帮助我更好地理解串口通信的原理和相关参数的影响。任务2: 汉字编码和图片显示在这个任务中,我学习了理解汉字的机内码、区位码编码规则和字形数据存储格式。

2023-11-19 22:46:19 107

原创 IIC协议采集温湿度

I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。学习I2C总线通信协议,并在STM32F103微控制器上完成基于I2C协议的AHT20温湿度传感器数据采集以及通过串口输出的任务,让我对嵌入式系统开发有了更深刻的理解。首先,软件I2C和硬件I2C是两种实现I2C通信协议的方式。

2023-11-14 23:41:42 66 1

原创 定时器&PWM应用编程

PWM是一种周期性的方波信号,通过调整方波的高电平时间(占空比)来控制输出信号的特性。在STM32PWM模块中,通过设置定时器的计数周期和比较值,可以实现不同频率和占空比的PWM输出。通用定时器提供了灵活的PWM配置选项,可以根据需要进行定时器和GPIO引脚的映射、预分频设置、计数周期和比较值的设定等。使用STM32F103的 Tim2~Tim5其一定时器的某一个通道pin(与GPIOx管脚复用,见下图),连接一个LED,用定时器计数方式,控制LED以2s的频率周期性地亮-灭。

2023-11-07 22:52:35 168

原创 基于中断/DMA的串口通信

依次读取数据位、奇偶校验位、停止位,停止位就表示这一个通信单元(帧)结束,然后中间是不定长短的非通信时间(发送方有可能紧接着就发送第二帧,也可能半天都不发第二帧,这就叫异步通信),下来就是第二帧·····2线连接时 是半双工状态。总之,DMA是一项重要的技术,可以显著提高计算机系统的性能和效率,特别是在需要大量数据传输的应用中,如多媒体处理和网络通信。在串口无数据接收的情况下,不会产生,当清除IDLE标志位后,必须有接收到第一个数据后,才开始触发,一但接收的数据断流,没有接收到数据,即产生IDLE中断。

2023-11-01 12:51:34 136 1

原创 STM32简单串口通信

1、串口通信属于基层基本性的通信规约,收发双方事先规定好通信参数。2、它自己本身不会去协商通信参数,需要通信前通信双方事先约定好通信参数来进行通信。3、因此,若是收发方的任何一个关键参数设置错误,都会导致通信失败。譬如波特率调错了,发送方发送没问题,接收方也能接收,但是接收到全是乱码。4、信息以二进制流的方式在信道上传输,串口通信的发送方每隔一定时间(时间固定为1/波特率,单位是秒)将有效信息(1或者0)放到通信线上去,逐个二进制位的进行发送。

2023-10-30 02:29:32 77 1

原创 基于HAL库的LED流水灯

(第二个勾选表示参加改善用户体验计划,即上传用户日志数据,若勾选安装后,可在软件 Help > User Preferences > General Settings 里取消)安装 Java 后,打开 SetupSTM32CubeMX-6.0.0.exe 文件,其他系统安装参考 Readme.html,点击 Next;Ⅰ 若flag=1,通过判断20ms之内高电平次数有无累加PA8来判断高电平是否结束,若高电平结束则重置所有参数,flag=0,熄灭所有灯。(若路径未创建,会提示路径将被创建)

2023-10-27 15:41:45 271 1

原创 使用KEIL仿真器观察引脚

记得鼠标移动至表格内,然后滑动滚轮进行缩放调整,调整到合适grid的大小再进行观测。⑤ 点击setup,输入一个引脚进行监听。① 点击魔法棒,按照图示进行修改。④ 选择实时显示波形。

2023-10-26 22:02:47 730 1

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

需要的功能有:① 点亮与熄灭流水灯–实验的首要功能② 计时器–用于以时间控制led效果。

2023-10-14 20:13:15 359 1

原创 嵌入式C语言的内存与内存分配

栈的主要功能是支持函数调用的执行。每当函数被调用时,栈上会分配一段内存用于存储函数的局部变量、返回地址以及其他执行上下文信息。堆的主要功能是存储需要在程序运行时动态分配的数据,例如动态创建的对象或数据结构。在C语言中,全局常量、全局变量、局部变量和静态变量是不同类型的变量或常量,它们有不同的作用域和生存期。堆内存通常是在程序启动时分配的,其大小是固定的,由开发人员在编译或链接时配置。栈是STM32中用于存储函数调用的上下文信息和局部变量的内存区域。堆是STM32中用于存储动态分配的数据的内存区域。

2023-10-05 14:03:27 164

原创 gcc编译工具集中各软件的用途以及ELF文件格式

gcc的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C++、java、Pascal等语言。gcc支持多种硬件平台。

2023-10-03 21:10:34 273

原创 GCC动态库与静态库的使用

所谓库文件,读者可以将其等价为压缩包文件,该文件内部通常包含不止一个目标文件(也就是二进制文件)。值得一提的是,库文件中每个目标文件存储的代码,并非完整的程序,而是一个个实用的功能模块。例如,C 语言库文件提供有大量的函数(如 scanf()、printf()、strlen() 等),C++ 库文件不仅提供有使用的函数,还有大量事先设计好的类(如 string 字符串类)。库文件的产生,极大的提高了程序员的开发效率,因为很多功能根本不需要从 0 开发,直接调取包含该功能的库文件即可。

2023-09-29 22:30:26 323 1

原创 关于嵌入式代码中的register和volatile

如果不用volatile,编译器会有优化操作:在同一进程中当上一次对这个地址操作的值在该进程中没有被修改时候,它会自动把上次读的数据取出来,而不是重新从这个地址取内容。如果定义一个变量用register关键字,那么编译器尽可能把变量存放在CPU内部寄存器中,这样就不必通过内存寻址来访问变量,提高访问效率。这样可以确保对变量的访问是准确的,并避免了一些意外的优化问题。注:现代编译器已经很智能,它们会自动对变量进行寄存器分配,因此使用register关键字并不一定会提高性能,甚至可能没有任何效果。

2023-09-24 21:59:58 122 1

原创 寄存器映射原理及GPIO初始化

在单片机中,寄存器是一种用来存储数据的特殊内存单元。它们通常位于中央处理器(CPU)内部,并且具有非常快的访问速度。寄存器在单片机中扮演着重要的角色,用于存储临时数据、控制和配置外设以及执行算术和逻辑操作。单片机中的寄存器可以分为多个类型,包括通用寄存器、特殊功能寄存器和状态寄存器等。通用寄存器用于存储临时数据,可以被程序员随意使用。特殊功能寄存器(SFR)用于控制和配置单片机的各种功能,如输入输出、定时器、中断等。状态寄存器用于存储和表示某些特定的状态信息,比如进位标志、溢出标志等。

2023-09-24 21:22:32 781 1

原创 基于Keil使用寄存器方式点亮LED灯

需要用到:MDK和STM32PACK安装教程:下载链接:打开Keil,点击顶栏Project:创建工程:在此处选择芯片,本次选择STM32F103RB按教程勾选CMSIS和Device中的选项,若未看到这几个选项请检查安装的步骤有没有正确进行:点击左上角新建文件点击保存Ⅲ 检查是否报错0 error时才编译成功点击魔法棒后进行如下勾选点击setting:最后点击load即可烧录到stm32

2023-09-24 19:46:41 531 1

原创 通过Proteus仿真并点亮流水灯

Proteus是一款电子电路设计和仿真软件,由Labcenter Electronics Ltd.开发。它提供了一个集成的开发环境,可以用于设计、模拟和验证电子电路。Proteus具有以下主要特点:① 电路设计:Proteus提供了丰富的电路设计工具,包括原理图编辑器和PCB布局编辑器。用户可以通过绘制电路图和布局来设计电子电路。② 电路仿真:Proteus支持电路的仿真和验证。

2023-09-23 00:14:49 990 1

原创 GCC与MAKEFILE的简单应用

作业一。

2023-09-13 17:42:28 76 2

原创 JavaScript & TypeScript 学习总结

JavaScript(简称JS)和TypeScript(简称TS)都是基于ECMAScript标准的编程语言。它们共享许多相似的基本语法,包括变量声明、条件语句、循环语句等。

2023-07-01 11:37:45 46

原创 HTML&CSS学习总结

学习总结

2023-07-01 11:05:06 78 1

空空如也

空空如也

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

TA关注的人

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