自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VCG显示——汉字,数字,图像

使用“”生成汉字。

2024-06-16 00:06:48 867

原创 ROS仿真小车

在launch目录下,新建一个 box_launch.launch 文件,该 launch 文件需要启动 Rviz,并导入 urdf 文件,Rviz 启动后可以自动载入解析urdf文件,并显示机器人模型,核心问题:如何导入 urdf 文件?创建一个四轮圆柱状机器人模型,机器人参数如下,底盘为圆柱状,半径 10cm,高 8cm,四轮由两个驱动轮和两个万向支撑轮组成,两个驱动轮半径为 3.25cm,轮胎宽度1.5cm,两个万向轮为球状,半径 0.75cm,底盘离地间距为 1.5cm(与万向轮直径一致)

2024-06-15 23:56:10 893

原创 HLS入门实践

HLS(High Level Synthesis):一款高层次综合工具。能够将 C/C++ 或 者 system C 等高级语言转化为 RTL (底层硬件描述语言)电路,降低开发时间。提供了常见的库(例如图像处理相关的 OpenCv 库和其它的数学库)。可以创建IP并通过例化或者使用 BlockDesign 的方式应用到项目中。

2024-06-08 11:12:32 931

原创 基于System-Verilog的FPGA设计与仿真

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

2024-06-03 12:35:54 738

原创 基于STM32的超声波测距

然而这样太麻烦了,而且也不好用,因此我们可以随意一些,我在代码中使用的是预分频器为72,自动重装器为100,那么得到的频率为72MHz/72/100=1000Hz,也就是一次定时器中断的时间为100us,而自动重装器里的每一个值就是1us,所以每次外部中断的下降沿触发之后只需要将定时器触发的次数*100再加上自动重装器里的值就可以得到回响信号的持续时间了,单位是us。如果是拉高,那么我们需要记录下持续的时间,这时候我们需要用定时器计时,所以需要在一开始的时候就配置好定时器的初始化。

2024-05-31 22:28:38 989

原创 Nios-II编程入门实验

实验目的:学习 Quartus 、Platform Designer、Nios-II SBT 的基本操作;初步了解 SOPC 的开发流程,基本掌握 Nios-II 软核的定制方法;掌握 Nios-II 软件的开发流程,软件的基本调试方法。

2024-05-14 14:04:25 422

原创 树莓派对FPGA板子上的流水灯程序的控制

实验内容:分别在DE2-115开发板和树莓派上编写串口通信程序, 实现树莓派串口指令对FPGA板子上的流水灯程序的控制,控制方式自定。

2024-05-14 11:39:30 324

原创 练习ROS动作编程

控制小乌龟画圆圈(旋转),并且通过代码订阅小乌龟的实时位置,并在终端打印。找到VMware USB Arbitration S...在虚拟机中设置,USB控制器兼容性设置为USB3.1。快捷键Win+R,输入services.msc确定。由于我的ubuntu是20.04的版本,所以详见。

2024-03-15 18:39:58 1026

原创 ROS安装——Ubuntu20.4

(2)进入清华大学开源软件镜像站,选择20.04版本,并复制其配置。(1)克隆rosdistro文件。注意要将鼠标放在第三个终端内。然后就可以控制小乌龟的行动。(1)首先将原来的复制。(4)注释里面原有的源。至此,就安装完成啦!

2024-03-01 19:05:08 557 1

原创 嵌入式系统基础A综合实验报告

心率血氧监测系统器件清单主要器件作用主控单元MAX30102采集心率血氧数据蜂鸣器数据异常进行报警HC-08蓝牙模块上传数据OLED显示心率血氧数据按键控制心率血氧模块以及蜂鸣器报警。

2024-01-12 23:34:45 1261 1

原创 FPGA编程入门

(6)半加器在FPGA开发板中经常被用作基本的加法运算单元,例如通过按键作为输入,LED灯作为输出来显示加法结果5。(3)当A和B为0或1时,半加器将这两个二进制数的低位进行加法运算,得到的结果位S和进位位C。Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和。(2)半加器有一个输出位,称为S(半加和),以及一个进位位,称为C(半加进位)。(4)如果S的值大于等于2,那么S需要减去2,同时进位C设为1。(1)半加器有两个输入位,通常标记为A和B。

2023-12-22 21:11:24 328

原创 STM32F103C8T6基于HAL库移植uC/OS-III及逻辑分析仪波形观测

打开 CubeMX,从菜单栏 help 进入 Manage embedded software packages 界面,点击From Url按钮,进入 User Defined Packs Manager 界面,其次点击 new,填入https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc,然后点击 check,将#include <bsp.h>下面添加 #include “gpio.h” #include “app_cfg.h”

2023-11-30 22:17:36 922 1

原创 汉字点阵与OLED屏显

将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、复制提取后的字模将其粘贴到oledfont.h中的cfont16[]里面。并对TEST_MainPage(void)进行修改。和传输时间三者之间的关系,并对比实际传输时间。再配置RCC和时钟频率72MHZ生成项目。准备字模提取软件提取名字。

2023-11-26 11:30:37 879 1

原创 定时器&PWM应用编程

设置TIM1通道1为输入捕获并开启输入捕获中断。一.定时器技术控制LED。二.定时PWM模式呼吸灯。设置TIM2为PWM输出。三.串口显示周期脉宽。

2023-11-20 23:28:15 38 1

原创 STM32完成基于I2C协议的AHT20温湿度传感器的数据采集并通过串口输出

I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。

2023-11-18 12:02:36 208 1

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

5.1 串口协议定义了数据传输格式,RS-232标准规定了串口电平。这为串口通信奠定了基础。5.2 正确设置串口波特率、数据位、停止位和校验位等参数是实现通信的关键。RCC等其他配置同前面相同,但多了DMA分配。

2023-10-31 10:08:15 34 1

原创 STM32简单串口通信(HAL)

电平与TTL电平的区别;了解"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。配置最大始终为72MHz,APB2为72MHz,APB1为36MHz。了解串口协议和RS-232标准,以及。选择STM32F103C8T6芯片。

2023-10-30 22:34:53 283 1

原创 实验3--基于HAL库的LED流水灯

用stm32F103核心板的GPIOA端某一管脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED流水灯工作;勾选Generate perpheral initialization as a pair。5. 端口设置,选择需要的端口,设置GPIO_OUTPUT,设置PA1,PB1,PB10。实验器材:若干LED,若干跳线,面包板,一个F103C8T6,一个USB转TTL。二.HEL库GPIO端口3只LED红绿灯的周期闪烁。实验管脚:PA1,PB1,PB10。(二)重写中断回调函数。

2023-10-27 19:39:53 51 1

原创 STM32寄存器和标准库点流水灯

此时,将1置为高电平,将0置为低电平,根据上面实验图我们可看到此时发光二极管是不导通的,我们将P13的置位状态相反(0为高电平,1为低电平)(2)选择OutPut路径,选择自己的obj文件,生成hex文件。(1)如同添加文件夹core,lib,obj。设置三个灯分别为A1,B1,B10。(1)A1亮,B1,B10熄灭。(2)B1亮,A1,A10熄灭。(3)B10亮,A1,B1熄灭。使用引脚:A1,B1,B10。单片机下载软件mcuisp。(5)改进后运行效果。(2)下载库函数文件。(1)添加文件到工程。

2023-10-16 18:11:12 87 1

原创 Ubuntu、stm32下的程序内存分配问题(堆栈、局部全局变量等)

一个是函数体内部,一个是函数外部。

2023-10-01 00:15:46 99 1

原创 学习并掌握可执行程序的编译、组装过程

在删掉静态库的情况下,运行可执行文件,发现程序仍旧正常运行,表明静态库跟程序执行没有联系。同时,也表明静态库是在程序编译的时候被连接到代码中的。由于运行时,是在/usr/lib中找库文件的。通过比较发现静态库要比动态库要小很多,生成的可执行文件大小也存在较小的差别。(2) 静态库文件命名规范:以lib作为前缀,是.a文件。动态库文件命名规范:以lib作为前缀,是.so文件。3.静态库和动态库文件大小的比较。2.x2y函数生成i动态库文件。1.x2y函数生成静态库文件。(4)验证静态库的特点。

2023-09-30 11:39:01 50

原创 register和volatile关键字

这个是嵌入式开发必须知道的。用volatile修饰变量或地址,相当于告诉编译器这个值会随时发生变化,每次使用都要去内存中重新读取它的值。如果不用volatile,编译器会有优化操作:在同一进程中当上一次对这个地址操作的值在该进程中没有被修改时候,它会自动把上次读的数据取出来,而不是重新从这个地址取内容。如果定义一个变量用register关键字,那么编译器尽可能把变量存放在CPU内部寄存器中,这样就不必通过内存寻址来访问变量,提高访问效率。由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。

2023-09-23 23:36:19 39 1

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

寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行送入数据,也只能并行输出。移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出,十分灵活,用途也很广。

2023-09-23 23:15:00 262 1

原创 ARM开发:使用MDK编译stm32简单程序

由于环境已配好,所以本文不含环境配置直接进行stm32的简单程序编译。

2023-09-23 18:07:05 245 1

原创 在Proteus电路仿真软件中完成一个C51程序设计和仿真

为使灯泡更亮,将Resistance修改为300。

2023-09-18 23:42:29 889 1

原创 学习在Ubuntu系统下使用gcc和Makefile编译C程序

预处理编译器将源代码中包含头文件编译进来编译检查代码规范性并翻译成汇编语言汇编将.s文件转换为目标文件链接将目标文件转换为可执行文件。

2023-09-14 22:16:35 66

原创 JavaScript & TypeScript 学习总结

1.web标准也称为网页标准,由一系列的标准组成,大部分由W3C(World Wide Web Consortium,万维网联盟)负责制定2.三个部分组成:(1)HTML:负责网页的基本结构(页面元素和内容)(2)CSS:负责页面的表现效果(页面元素的外观,位置等页面样式,如:颜色,大小等)(3)JavaScript:负责页面的行为(交互效果)TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。

2023-06-27 14:39:49 27 1

原创 HTML & CSS 学习总结

无无

2023-06-27 00:35:35 79 2

空空如也

空空如也

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

TA关注的人

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