- 博客(19)
- 收藏
- 关注
原创 STM32F103C8T6 & HC-SR04超声波模块——超声波障碍物测距(HAl库)
HC-SR04是一款常用的超声波测距模块,它能够通过发送超声波脉冲并接收其回波来测量物体与传感器之间的距离。这种模块广泛应用于机器人、智能小车、智能家居等领域,可以用于测量墙壁距离、障碍物距离、物品距离。本次实现了STM32F103C8T6微控制器和HC-SR04超声波测距模块的结合应用,并通过LED闪烁频率表现出来。通过CubeMX的图形化配置和Keil5的开发环境,项目简化了开发流程,提高了开发效率。此外,项目还提供了对超声波测距原理的深入理解,以及如何通过软件控制硬件来实现特定功能的方法。
2024-06-15 22:22:02 1403
原创 基于Chisel的FPGA流水灯设计
Chisel是一种基于Scala的硬件构造语言,它允许设计者使用高级的编程概念来构建硬件。Chisel的设计哲学是“不要重复自己”(DRY),这意味着它鼓励设计者通过参数化和模块化来重用代码。
2024-06-03 19:54:19 968
原创 HLS入门——点亮LED仿真
HLS是一种设计方法,使用HSL可以更快地开发电子系统,特别是那些需要特定硬件加速的复杂系统。通过使用HLS,你可以用高级语言(如C或C++)编写代码,然后自动转换成硬件描述语言(HDL),从而加速开发过程。此次学习了如何使用Xilinx Vivado HLS 2019.2版本来实现一个简单的LED点亮仿真项目。这个过程包括了创建项目、添加源文件、编写C/C++代码、配置HLS工具、进行仿真与综合,以及最终的验证和实现步骤。
2024-05-25 23:22:57 738
原创 基于Nios-II的流水灯
将 nios2_qsys_0 重命名为 cpu,点击” Rename”即可重新命名,将 cpu 的 clk 和 reste_n 分别与系统时钟 clk_0 的 clk 和 clk_reset 相连(右键器件—> connection)”Component Library”标签栏中的查找窗口输入 pio 找到”PIO”后点击Add,将pio_0 改名为 pio_led。在”IRQ”标签栏下点选”Avalon_jtag_slave”和 IRQ 的连接点就会为”jtag_uart”核添加一个值为 0 的中断号。
2024-05-12 22:19:31 588
原创 ROS仿真小车与SLAM
链接:https://gitcode.com/raulmur/ORB_SLAM2/overview?下载链接:https://www.cvlibs.net/datasets/kitti/eval_odometry.php。先编译配置launch文件,退到主目录catkin_ws下,执行catkin_make。成功之后,再执行 catkin_make install。
2024-05-07 22:55:58 765
原创 ROS2安装以及小海龟画圆
ROS2(Robot Operating System 2)是一个用于机器人和自动化系统开发的开源软件平台。从名字可以看出,它是ROS的下一代版本,目标是利用 ROS1 的优点,改进不足之处,提供一个更加稳定、可靠和可扩展的平台,满足越来越复杂和多样化的机器人应用场景。更好的可移植性。ROS2 可以在不同的操作系统和处理器架构上运行,例如 Linux、Windows、macOS 等操作系统,amd64、arm64 等处理器,以满足不同用户的需求。更加稳定和可靠。
2024-03-03 18:36:55 1636
原创 FPGA编程入门——HDLBits练习、Quartus编写加法器
HDLBits是一个在线的Verilog编程学习网站。可以在上面通过例程快速上手学习Verilog编程,不过因为是全英文的,所以建议看不懂的地方可以参考HDLBits 中文导学来学习。通过半加器能更快构建全加器,再通过全加器可以构建多位全加器,因为时间原因,没能上板测试四位全加器,所以只给出1位全加器。
2023-12-19 20:36:46 727 1
原创 STM32CubeMX&Keil——STM32F103C8T6:移植ucOS
一、ucOSUCOS是Micrium公司出品的RTOS类实时操作系统, UCOS目前有两个版本:UCOSII和UCOSIII。UCOSIII是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制,提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。UCOSIII是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的, UCOSIII结构简洁,可读性很强!非常适合初次接触嵌入式实时操作系统学生、嵌入式系统开发人员和爱好者学习。
2023-11-30 21:13:59 1312
原创 STM32Cube&Keil——STM32C8T6:基于IIC协议的温湿度采集(奥松AHT20温湿度传感器)
通过使用I2C协议与AHT20传感器完成了此次温湿度采集,让我对传感器的使用更加了解,以及对I2C协议更加了解。
2023-11-18 20:28:13 236 1
原创 HAL库实现DMA串口通信
通过使用DMA串口通信实现最小系统板与windows11之间进行通信,发送“Hello World!”,与之前使用中断来进行通信相比,对cpu的占用更小,更加实用。
2023-11-08 22:03:49 931 2
原创 STM32F103C8T6的USART串口通信及中断
一、串口通信(一)串口协议和RS-232标准1.串口通信协议串口通信是指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。
2023-10-29 22:45:38 6383 2
原创 STM32CubeMX——基于HAL库的LED流水灯
本次使用hal库进行流水灯实验,发现使用hal库对单片机编程更加便捷,并且更简单,只需在CubeMX中完成大多数前期的配置,自己编写核心代码即可,并且使用此方式代码与文件格式更加规范。(1)点击魔术棒,在Target中修改自己的晶振数量。一、在CubeMx使用HAL库完成LED流水灯。1.在Cube生成的模板中打开main.c文件。一、在CubeMx使用HAL库完成LED流水灯。(一)在CubeMX中新建项目。(一)在CubeMX中新建项目。二、在keil中进行模拟仿真。(三)编译、烧录与运行。
2023-10-27 21:01:04 100 1
原创 【无标题】
可以看到偏移量为0xc,所以该寄存器的地址等于端口的基址加上偏移量,在相应的位赋值可以控制输出电压,0为低电压,1为高电压,以pa7引脚为例子,想要输出高电压,就需要在第八位赋1。每四位配置一个端口,如11 01,11就是选择开启功能,01就是选择模式和确定最大速度,但有一点不一样,低寄存器的偏移地址为0x00,高寄存器的偏移地址为0x04。因为流水灯要操作的引脚都是在GPIO端口的,所以根据系统结构图,属于AHB总线,所以所要用的端口的复位和时间控制都受RCC控制。一、基于寄存器操作的LED流水灯。
2023-10-16 21:10:30 40 1
原创 gcc的介绍以及静态库和动态库的生成和使用
由于链接动态库和静态库的路径可能有重合,所以如果在路径中有同名的静态库文件和动态库文件,比如 libtest.a 和 libtest.so,gcc 链接时默认优先选择动态库,会链接libtest.so,如果要让 gcc 选择链接 libtest.a 则可以指定 gcc 选项-static,该选项会强制使用静态库进行链接。创建静态库用 ar 命令。在使用到这些公用函数的源程序中包含这些公用函数的原型声明,然后在用 gcc 命令生成目标文件时指明静态库名,gcc 将会从静态库中将公用函数连接到目标文件中。
2023-10-13 21:29:16 327
原创 用c语言编写helloworld
1编写一个main.c程序。5.将hello.c编译可运行文件:gcc hello.c -o hello。3.用gcc命令把main.c和sub.c文件生成main.o和sub.o。了解怎么创建文件,编写文件,编译文件,运行文件。2.用vi编写准程序和上面main.c,sub.c一样。3.创建hello.c文件夹:vi hello.c。1.新建文件夹:mkdir hw.一、编写hello wolrd。2.打开文件夹:cd hw.6.运行:./hello.4编写hello.c。
2023-09-17 20:59:44 404 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人