- 博客(31)
- 收藏
- 关注
原创 Linux系统调用编程(嵌入式开发)
本文介绍了Linux系统编程中进程与线程的概念,以及虚拟内存管理机制。进程作为独立执行单元拥有专属资源,线程则共享进程资源但调度开销更小。Linux通过虚拟内存管理实现进程隔离和内存保护,每个进程拥有独立的mm_struct和vm_area_struct结构。文章还对比了Linux虚拟内存与STM32物理内存映射的区别,并通过实例演示了Linux系统调用编程:创建目录、编写C程序、编译运行一个包含fork()和execl()调用的多进程程序,展示了父子进程的创建和执行过程。
2025-06-04 15:45:55
673
原创 opencv图像库编程(嵌入式学习)
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和图像处理库,广泛用于各种计算机视觉任务,如图像处理、视频分析、人脸识别、物体检测、机器学习等。在虚拟机中保存一张自己需要编辑的图片(IImage),然后创建函数对图片进行修改,具体代码根据自己的要求编辑,这里展示亮度调整处理。然后进入opencv文件夹,安装相关依赖库cmake,同时创建自己的编译文件夹并配置、编译,以便后续编译等操作。下载好过后,将压缩包拖入虚拟机中,并用命令解压,配置环境;
2025-06-04 15:21:41
369
原创 虚拟机通信(嵌入式学习)
如果我们想在虚拟机上与其他同学或朋友取得联系,我们可以使用talk程序进行交流。首先我们要打开虚拟机,执行以下命令,安装talk程序;例如^Z是使用了CTRL快捷键,回复的Hello后面的问号是输入问题。进行编译,编译过后终端一运行sender.c,终端二运行receive.c,测试运行结果。首先创建两个文件,sender.c和receiver.c,然后输入以下代码;随后通过gcc编译器编译一遍,接着运行,尝试通信。在同一终端下,子进程与父进程的通信;使用以下命令创建管道文件,然后使用命令启动程序;
2025-06-04 15:09:08
205
原创 利用状态机思想点亮流水灯(FPGA)
状态机是一种描述系统行为的形式化模型,通过有限状态和状态转移实现系统控制。文章首先介绍了状态机的核心概念(状态、事件、转移、动作)和类型(FSM、HFSM等),以及其在嵌入式系统、游戏开发等领域的应用优势。随后以Verilog实现流水灯为例,展示了状态机在FPGA开发中的具体应用,包括代码实现和ModelSim仿真测试。最后对比分析了CPLD与FPGA的架构差异和适用场景,并提供了HDLbits网站上组合逻辑设计题目的解决方案,包括多路复用器、加法器等基础电路设计。全文系统性地阐述了状态机原理及其在数字系统
2025-06-03 15:24:23
722
原创 用 Verilog编程实现一个分秒计数器(FPGA)
摘要:本文介绍在DE2-115开发板上实现分秒计数器的Verilog设计。重点包括:1)消抖模块设计,通过20ms延时检测消除按键抖动;2)核心计数逻辑实现,包含分频器、BCD计数器和七段译码器;3)系统集成,将消抖模块与计数器连接,并添加按键控制功能(KEY0复位、KEY1暂停)。实验步骤详细说明了Quartus II工程创建、代码实现、引脚分配和FPGA烧录过程。该设计通过按键消抖处理,确保了计时器的稳定运行,可准确显示分秒计时(00:00-59:59)。
2025-06-03 15:13:28
573
原创 FPGA点亮LED灯(FPGA)
摘要:本文介绍了使用VScode开发Verilog程序实现LED流水灯的全过程。首先说明如何通过国内镜像下载安装VScode并配置Verilog开发环境,然后详细讲解了在DE2-115开发板上实现6个LED周期1秒的跑马灯效果,包括工程创建、Verilog代码编写、引脚分配和程序烧录步骤。接着扩展开发了按键控制功能,可实现流水灯的暂停与恢复。文章提供了完整的Verilog代码示例,并针对常见问题给出了解决方案参考链接。整个项目从环境搭建到功能实现,再到功能扩展,形成了一套完整的FPGA开发流程说明。
2025-06-03 15:01:50
974
原创 远程终端登录和桌面访问(嵌入式开发)
本文介绍了两种连接Windows系统与Linux虚拟机的方法:1)通过桥接模式实现网络通信,包括配置虚拟机和主机网络参数;2)利用远程连接工具(Putty、Xshell)和文件传输工具(FileZilla)进行远程访问和文件管理。详细步骤包含网络配置、用户创建、SSH服务设置及X11转发配置,提供了从IP地址查询到具体命令操作的完整流程,适用于需要实现跨系统交互的开发场景。文中还提及了常见问题解决方法,为虚拟机连接提供了实用技术参考。
2025-06-03 14:42:02
850
原创 [FPGA]设计一个DDS信号发生器
在近期的FPGA开发学习中,我重点攻克了RAM、ROM、FIFO等存储类IP核的设计与应用。这段学习历程不仅让我掌握了硬件描述语言与工具链的协同工作逻辑,更让我深刻体会到“硬件思维”与“软件思维”的差异。FPGA入门学习Day1——设计一个DDS信号发生器-CSDN博客。
2025-04-20 18:30:04
899
原创 DE2115实现4位全加器和3-8译码器(FPGA)
Quartus 是一款综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
2025-03-01 18:33:14
813
原创 【STM32入门学习】基于DHT20温湿度传感器数据采集和显示
读写过程:IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps 以上。注意IIC是为了与低速设备通信而发明的,所以IIC的传输速率比不上SPI12C最重要的功能包括:只需要两条总线;
2024-06-25 12:11:32
1118
原创 【STM32学习】基于I2C协议的OLED显示(利用U82G库)
OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
2024-06-24 15:25:25
1016
原创 stm32串口通信入门
实现单片机的串口与PC的通信。(TTL转USB)上图是双供电方式下 MCU 单片机通过 TTL 串口连接 CH340 芯片实现 USB 通讯的参考电路。CH340 由 USB 总线供电 VBUS,MCU 使用另一电源 VDD,VDD 支持 5V、3.3V 甚至 2.5V、1.8V。图中 MCU 的 RXD 引脚应该启用内部上拉电阻,如没有,则建议对 RXD 引脚外加 2KΩ~22KΩ的上拉电阻且接 MCU 的电源 VDD。防 CH340 有电但 MCU 无电时的外灌。
2024-06-24 11:02:10
751
原创 定时器与PWM的LED控制
通用定时器(General Purpose Timer):TIM2、TIM3、TIM4: 这些定时器是STM32F103系列的通用定时器,可以用于产生PWM信号、测量脉冲宽度、定时等应用。它们具有多种工作模式,包括定时模式、输入捕获模式、输出比较模式和PWM模式等。特点: 通用定时器具有较为简单的功能,适用于一般的定时和PWM控制应用。高级定时器(Advanced Control Timer):TIM1: TIM1是STM32F103系列中的高级定时器,具有更强大的功能和更高的性能。
2024-06-01 22:23:09
477
原创 HAL库点亮LED灯(STM32)
1.以管理员身份运行并安装2.勾选"I accept the terms of this license agreement",接着选择 Next3.选择安装位置。
2024-05-26 22:33:15
411
原创 【STM32】中断原理与串口通信
用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。如果完成后,尝试在main函数while循环中加入一个串口每隔1s 发送一次字符的代码片段,观察按键中断对串口发送是否会带来干扰或延迟。采用串口中断方式重做上周查询方式的串口通信作业,分别实现:代码如下main.cexti_key.hexti_key.c点亮LED同时进行串口通信。
2024-05-24 21:38:46
462
1
原创 STM32F103的LED亮灭(寄存器地址版)
常用功能引脚:PA0-PA15: 16个通用I/O引脚,可用于输入/输出、外部中断、模拟输入等。PB0-PB15: 16个通用I/O引脚,可用于输入/输出、外部中断、模拟输入等。PC13-PC15: 3个通用I/O引脚,可用于输入/输出、外部中断等。PD0-PD2: 3个通用I/O引脚,可用于输入/输出、外部中断等。PE0-PE5: 6个通用I/O引脚,可用于输入/输出、外部中断等。PF0-PF1: 2个通用I/O引脚,可用于输入/输出、外部中断等。
2024-05-06 22:55:48
1516
原创 单总线温度传感器DB18B20
DS18B20是一种数字温度传感器,采用单总线接口进行通信。它可以测量环境温度,并将其转换为数字信号输出。DS18B20具有高精度、数字输出、工作电压范围广、低功耗等特点,常用于各种温度监测应用中,如室内温度监控、工业自动化等。由于采用单总线接口,它可以方便地与微控制器等设备进行通信,并且可以通过一条总线连接多个DS18B20传感器,简化了布线结构。DS18B20传感器有几种不同的封装类型,包括TO-92、TO-220、TO-263等,适用于不同的应用场景和安装需求。
2024-04-25 22:32:00
1279
1
原创 单片机定时器与串口通信
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计 算机、 打印机、 复印机、 报警器、 电子玩具、 汽车电子设备、 电话机、 定 时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
2024-04-22 18:25:40
1010
原创 中断系统及定时器/计数器的工作原理
本次仿真实验,从多方面学习到了仿真实践,熟练掌握仿真、烧录流程,对汇编语言代码也进一步加深了理解,对51单片机的学习更进一步。
2024-04-07 21:02:44
1337
原创 汇编程序及LED灯的周期点亮
常见的LED发光二极管都有两个引脚,其中长的引脚接电源正极,为电流进入LED的引脚,短的接电源负极,为电流离开LED的引脚。如果LED正向导通,此时LED电阻基本为零,LED导通发光,如果LED反向导通,此时LED电阻可理解为无穷大,LED无电流通过,LED不发光。在利用普中开发板做实例之前,我们首先需要了解关于普中开发板的相关知识,详细可以参考以下链接:https://blog.csdn.net/yu57955/article/details/120928956。实现周期性点亮代码如下,
2024-03-24 22:04:57
904
1
原创 基于SDCC和Edsim51的代码仿真
软件安装链接链接:https://pan.baidu.com/s/1ebS3vYLCohNkVfDhwChzGA提取码:0708(取自他人博客)
2024-03-16 21:51:58
450
1
原创 基于Proteus8软件,设计LED流水灯电路
下面就介绍一下原理图设计窗口界面的一些功能区域和各个工具的作用。原理图设计界面,主要是包含预览窗口方向工具栏元件列表模型选择工具栏仿真测试按钮原理图编辑窗口。1,原理图编辑窗口:用于绘制原理图的。元件需要放进蓝色方框内,可通过鼠标滚轮来缩放视图。2,预览窗口:①当在元件列表选择某个元件时,会显示该元件的预览图;②当点击原理图编辑窗口后,再左键点击预览窗口,可以改变原理图的可视范围,右键释放。3,模型选择工具栏:①用于即时编辑元件参数(先单击该图标,再单击要修改的元件)
2024-03-10 20:24:47
6111
1
原创 Verilog编程基础练习
3-8译码器是一种数字电路,它接受3个输入信号并将其转换成8个输出信号。这种译码器通常用于将一个3位的二进制输入映射到8个可能的输出线中的一个。其基本原理是通过对输入信号的各种组合进行编码,使得每个可能的输入组合都对应一个唯一的输出。对于3位二进制输入 ABC,对应的输出线为 Y0 到 Y7。具体的编码规则如下:当 ABC = 000 时,Y0 = 1,其余输出线为0。当 ABC = 001 时,Y1 = 1,其余输出线为0。当 ABC = 010 时,Y2 = 1,其余输出线为0。
2023-12-17 18:50:05
986
1
原创 RS锁存器和D型触发器
D触发器是一种最简单的触发器,在触发边沿到来时,将输入端的值存入其中,并且这个值与当前存储的值无关。在两个有效的脉冲边沿之间,D的跳转不会影响触发器存储的值,但是在脉冲边沿到来之前,输入端D必须有足够的建立时间,保证信号稳定。
2023-11-21 20:46:17
2947
1
原创 编码器——解码器电路设计及Multisim仿真
解码器(Decoder)的作用正好与编码器相反,是将一个N位二进制代码(N个输入信号)转译为2的n次方个输出的高/低电平信号(或者另一种代码)。常用的译码器电路有二进制译码器、 二–十进制译码器和LED显示译码器。2.常用译如图为译码器74LS138的引脚图:引脚简介:(1)A0-A2(引脚1、2、3):二进制输入端2)0-7(引脚7、9、10、11、12、13、14、15):对应输入的二进制输出与其对应的高低电平。(3)Vcc (引脚 16):正极电源。(4)GND (引脚 8):地线。
2023-11-16 15:24:26
3684
1
原创 二进制数原码-反码和补码的数字电路以及半加器,全加器的学习
补码原理如下:(1)正数与原码相同;(2) 负数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。同一个数字在不同的补码表示形式中是不同的。比如10进制数值-15的二进制原码是10001111,其补码在8位二进制中是11110001,然而在16位二进制补码表示中,不足位数要用符号位补全,也就是1111111111110001。
2023-10-22 18:58:01
857
1
原创 ubuntu软件下载安装,ubuntu系统vim常用命令学习以及ubuntu系统下c语言helloworld入门以及编写简单程序
安装命令,从开源库里下载开源软件。
2023-10-22 17:37:40
708
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人