- 博客(24)
- 收藏
- 关注
原创 EEPROM手册笔记
主机不会生成停止条件,而是向 24LC04B 传输多达 16 个数据字节,这些数据字节暂时存储在片上页面缓冲区中,一旦主机发送了停止条件,这些数据字节将被写入内存。然后,主机再次发出控制字节,但将 R/W 位设置为“1”。在启动条件之后,24LC04B 监控 SDA 总线,检查正在传输的设备类型标识符,在收到“1010”代码后,从设备在 SDA 线路上输出确认信号。顺序读取的启动方式与随机读取相同,不同之处在于一旦 24LC04B传输第一个数据字节,主机就会发出确认,而不是在随机读取中发出停止条件。
2024-09-23 20:27:17
1377
原创 UART协议
UART(Universal Asynchronous Receiver/Transmitter)即通用异步收发传输器,是一种广泛应用的串行通信协议。1.信号组成UART 通常只有两根信号线,TX(发送数据端口线)和 RX(接收数据端口线)。通过这两根线,就可以实现设备之间的数据双向传输。2.数据传输方式发送数据时,发送设备将并行数据转换为串行数据进行传输。例如,要发送一个字节的数据,会将 8 位的并行数据一位一位地按顺序发送出去。
2024-09-23 20:09:52
1276
原创 ROS仿真小车
ROS学习过程记录,从零开始仿真一辆小车,之后会实现运动控制、雷达、相机等创建一个四轮圆柱状机器人模型,添加摄像头和雷达传感器,并控制小车运动:URDF与Gazebo集成URDF 不能单独使用,需要结合 Rviz 或 Gazebo,URDF 只是一个文件,需要在 Rviz 或 Gazebo 中渲染成图形化的机器人模型,当前,首先演示URDF与Rviz的集成使用,因为URDF与Rviz的集成较之于URDF与Gazebo的集成更为简单参考ROS机器人入门。
2024-06-16 19:29:51
1452
原创 HLS入门(LED灯闪烁)
HLS(High-Level Synthesis,高级综合)是一种硬件设计方法,它允许设计者使用高级语言(如C、C++或SystemC)来描述硬件行为,然后自动将这些高级语言描述转换成门级或更低级别的硬件实现。HLS的目标是简化硬件设计流程,提高设计效率,并允许软件工程师参与到硬件设计中来。HLS的主要步骤包括输入高级语言描述:设计者使用C、C++或SystemC等高级语言来编写硬件的逻辑。综合:HLS工具将高级语言代码转换成硬件描述语言(HDL)代码,如Verilog或VHDL。
2024-06-03 21:20:34
671
原创 基于DE2-115开发板使用System-Verilog实现驱动HC_SR04超声波测距模块功能
环境1.硬件 DE2-115 HC-SR04超声波传感器2.软件 Quartus 18.1目标结果使用DE2-115开发板驱动HC-SR04模块,并将所测得数据显示到开发板上的数码管。模拟倒车雷达,集成蜂鸣器,led和vga提示功能蜂鸣器提示,小于20cm,1s一响;小于10cm,0.5s一响;LED提示,小于20cm, 全亮提示;VGA提示,小于20cm ,显示 警告warning 图片VSCODE中安装systemverilog插件HC-SR04超声波距离传感器的核心是两个超声波传感器。
2024-06-03 20:18:48
1012
1
原创 红外超声波雷达测距
RS485适合于需要长距离、多点通信且抗干扰能力较强的工业环境,而RS232则更适合于短距离、点对点的通信,常见于计算机周边设备。简单性:Modbus协议的实现相对简单,它定义了一套标准的通信规则,使得不同厂商的设备能够相互通信。灵活性:Modbus协议支持多种通信方式,包括RS232、RS485、以太网(TCP/IP)等。错误检测:Modbus协议提供了错误检测机制,如校验和或CRC校验,以确保数据传输的准确性。功能码:Modbus协议使用功能码来定义不同的操作,如读取寄存器、写入寄存器、诊断等。
2024-05-27 21:09:37
577
原创 基于FPGA的VGA显示彩条、字符、图片
VGA(Video Graphics Array)视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型,绝大多数显卡都带有此种接口。它传输红、绿、蓝模拟信号以及同步信号(水平和垂直信号)。VGA接口是一种D型接口,上面共有15针孔,分成三排,每排五个。
2024-05-26 21:17:06
1583
原创 Nios入门实验——用Nios软件编程方式完成LED流水灯显示并使用串口输出“Hello World”
1.学习 Quartus Prime 、Platform Designer、Nios II SBT 的基本操作;2.初步了解 SOPC 的开发流程,基本掌握 Nios II 软核的定制方法;3.掌握 Nios II 软件的开发流程,软件的基本调式方法。
2024-05-12 22:27:00
1004
原创 Ubuntu安装opencv,简单操作:打开图片及视频
修改 opencv.conf 文件,打开后的文件是空的,添加 opencv 库的安装路径:/usr/local/lib。在解压缩包之前,将 opencv-3.4.11.zip 复制到 home 文件夹下,再解压缩。需要将gcc 改为g++使用 make 创建编译,仍然是在 build 文件夹下进行(耗时较长)创建一个文件夹用于存放代码文件code,并创建一个test1.cpp文件。在code文件夹下放一张图片,我在这里命名为lena.jpg。使用快捷键Win+R,输入services.msc,确定。
2024-03-16 13:49:39
954
1
原创 Ubuntu系统安装ROS,实现小海龟画圆
ROS(RobotOperating System)是一个用于机器人软件开发的灵活框架,其目标是促进复杂而可重用的机器人软件开发。尽管被称为“操作系统”,ROS实际上更接近于一个中间件或一个软件开发套件(SDK),它提供了操作系统应有的服务,如硬件抽象、底层设备控制、常用功能的实现、进程间消息传递以及包管理等。安装ROS的整个过程中,出现许多的错误,通过网络查询,一步一步解决问题,花费了较多时间。不过通过解决这些问题我对ROS有了更深刻的理解,使用C++实现小海龟画圆实验使我对ROS有了初步的实践。
2024-03-03 13:11:47
1832
原创 FPGA-1位全加器的实现
启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。通过拨动SW,观察LED的亮灭的效果,发现SW开表示1,关表示0,LED亮表示1,灭表示0。最终,验证的结果为跟其真值表相吻合。Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和。A,B表示二进制数,C表示半加进位,S表示半加和。
2023-12-19 20:08:50
1323
1
原创 STM32F103C8T6基于HAL库移植uC/OS-III及简单操作
UCOS是Micrium公司出品的RTOS类实时操作系统, UCOS目前有两个版本:UCOSII和UCOSIII。UCOSIII是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制,提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。UCOSIII是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的, UCOSIII结构简洁,可读性很强!非常适合初次接触嵌入式实时操作系统学生、嵌入式系统开发人员和爱好者学习。什么是任务?
2023-11-30 22:16:16
179
原创 STM32与OLED屏显的应用
SPI(Serial Peripheral interface)是串行外围设备接口,SPI 接口主要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32 也有 SPI 接口。
2023-11-19 20:36:20
129
1
原创 STM32基于I2C协议的AHT20温湿度传感器的数据采集
开始通讯时,主设备先发送一个起始信号(S),主设备发送一个地址数据(由7bit的从设备地址,和最低位的写标志位组成的8bit字节数据),然后,主设备释放SDA线,并等待从设备的应答信号(ACK),从设备应答主设备后,主设备再发送要读取的寄存器地址,从设备应答主设备(ACK),主设备再次发送起始信号(Sr),主设备发送设备地址(包含读标志),从设备应答主设备,并将该寄存器的值发送给主设备;所谓硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的;
2023-11-13 20:07:17
240
原创 定时器控制led灯
1.计数模式:定时器可以向上计数或向下计数。它能够以固定的时间间隔产生中断信号,或者根据预定的模式和配置生成触发信号。5.输入捕获模式:当外部信号输入捕获引脚上的电平发生变化时,定时器可以捕获当前的计数值,并生成相应的中断或触发信号。3.比较模式:定时器可以与预设的比较值进行比较,当计数值与比较值相等时,定时器会生成相应的触发信号或中断。6.输出比较模式:定时器可以将其计数值与预设的比较值进行比较,并根据比较结果控制输出引脚的电平状态。2.触发模式:定时器可以配置为在计数值达到特定值时触发外部设备或中断。
2023-11-12 12:06:34
258
1
原创 基于HAL库的LED流水灯,以及中断LED灯
在stm32cubemx上配置好HAL库后,很容易的实现点亮LED灯中断控制LED灯,线路也很简单。参考一参考二。
2023-10-27 14:17:15
151
1
原创 寄存器与固件库实现stm32 LED流水灯
学习使用这两种方式实现LED流水灯,直观了解到两种方式的优缺点。寄存库操作简单,但是不易理解,固件库操作稍复杂,易于理解,两种方式都有助于单片机的学习。参考。
2023-10-16 22:17:56
126
1
原创 嵌入式Ubuntu、stm32下的程序内存分配问题(堆栈、局部全局变量等)
通过本实验对程序内存分配有更加详细深入的了解,熟悉了Linux基本命令和文件系统结构。学习了如何分配和管理堆内存和栈内存。在嵌入式系统中,内存管理非常重要,要注意避免内存泄漏和栈溢出问题。学习如何分配和管理堆内存和栈内存。在嵌入式系统中,内存管理非常重要,要注意避免内存泄漏和栈溢出问题。参考:链接link。
2023-10-06 17:52:37
206
1
原创 gcc--静态库和动态库
本实验通过三个程序对代码使用静态库和动态库,学习和掌握了生成使用静态库和动态库。在此过程中明白了两者的区别。参考:https://blog.csdn.net/qq_43279579/article/details/109026927。
2023-10-06 17:24:02
282
1
原创 STM32/51单片机编程入门(Proteus仿真模拟)
Proteus是一款广泛用于电子设计自动化(EDA)的软件工具,主要用于模拟和设计电子电路以及微控制器和嵌入式系统。电子电路设计和模拟:Proteus允许电子工程师和设计师创建和模拟各种电子电路,包括模拟电路和数字电路。用户可以绘制电路图,并通过模拟功能来验证其设计的正确性。微控制器仿真:Proteus支持各种微控制器和微处理器的仿真,包括常见的型号如8051、PIC、AVR等。这使得用户能够在软件中模拟他们的嵌入式系统,以进行调试和验证。
2023-09-26 17:47:51
4458
原创 学习Ubuntu系统下用gcc和Makefile编译程序
本次实验,我在Ubuntu系统上编译C语言,使用gcc直接编译和Makefile编译两种方式。使用gcc这一工具时,我理解到C语言源程序编译为可执行文件的过程,用Windows进行编译C语言更加简洁,但不好理解代码成为可执行文件的过程,这些编译过程会使我们更加了解C语言的执行过程。
2023-09-12 22:30:56
1575
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人