- 博客(33)
- 收藏
- 关注
原创 嵌入式学习——opencv图像库编程
在虚拟机中保存一张自己需要编辑的图片(IImage),然后创建函数对图片进行修改,具体代码根据自己的要求编辑,这里展示亮度调整处理。解压完成过后,在自己的目录下就会多一个opencv-4.11.0的文件夹,根据自己下载的版本,后缀可能有所不同。然后进入opencv文件夹,安装相关依赖库cmake,同时创建自己的编译文件夹并配置、编译,以便后续编译等操作。注意:这里消耗时间比较长,需要耐心等待,在干其他事情时,确保自己的虚拟机开启,以免电脑进入休眠断开连接。//进入opencv文件夹。
2025-04-20 20:45:12
526
原创 嵌入式学习——虚拟机通信
在这段程序中,使用两个进程互相通信,首先根据用户输入的内容,子进程接收过后输出,发出第一段对话,然后用户再输入,接着父进程接收并输出,完成对子进程的回应,这段代码是子进程与父进程轮流对话,灵活性较低,不能多段输出,只能轮回。同样的操作进行编译,编译过后终端一运行sender.c,终端二运行receive.c,测试运行结果。可以看到,发送hello,也能接收到hello,这个程序的问题在于只能一条一条发送,而且单项发送。首先创建两个文件,sender.c和receiver.c,然后输入以下代码;
2025-04-20 20:41:45
368
原创 嵌入式学习——远程终端登录和桌面访问
这种模式特别适合多维度扩展的场景,例如当一个类需要在多个独立变化的维度(如功能性和非功能性、平台相关性和平台无关性)上进行扩展时,桥接模式可以避免因多层继承导致的类爆炸问题,同时提高系统的扩展性和灵活性。开始之前我们使用win+R,输入cmd指令进入命令行窗口,输入命令ipconfig,找到无线局域网适配器WLAN,找到自己的IPv4地址和默认网关,并记录下来。显示如图上所示,即成功。在XTerminal中打开我们的虚拟机,使用命令创建新的用户,并设密码,这里创建一个名为classmate的账户。
2025-04-20 20:25:20
909
原创 FPGA--HDLBits网站练习
通过HDLBits网站进行练习,掌握了基本的逻辑门实现,如AND门、NOR门和XNOR门。这些练习学者对Verilog的语法和逻辑设计有了更直观的认识。通过编写和仿真代码,能够验证设计的正确性,并逐渐提高自己的编程能力。
2025-04-04 23:32:15
738
原创 Linux系统调用编程
本次学习,从进程和线程的基本概念入手,掌握它们在操作系统中的作用和特点。通过实践操作,使用ps -a和kill命令查询和终止进程,理解Linux虚拟内存管理和STM32真实物理内存的区别。在编程实践中,创了一个使用fork()、wait()和exec()的C程序,并通过编译和运行验证了其功能。
2025-04-04 18:07:37
753
原创 fpga:分秒计时器
该任务设计了一个分秒计时器,采用模块化设计和状态机实现计时功能,通过消抖处理和硬件调试,完成了启动、暂停及复位功能的验证。
2025-04-01 22:46:35
1060
原创 树莓派学习:环境配置
编程实践让我在树莓派平台上重新审视C语言和Python的基础知识,从安装编译器到编写代码,再到运行程序,体验了完整的开发流程。访问树莓派官方网站,在相关下载区域找到适合Windows系统的镜像工具链接,点击Download Windows下载,等待下载完成;下载完成过后,双击,在安装向导的引导下,按照默认设置或根据个人偏好选择安装路径等选项,逐步完成安装过程。回到主界面,选择 是 ,会跳出一个提示,再次选择 是 ,删除原来的数据,随后等待烧录完成(写入、验证)。在下图中,1处输入树莓派IP地址;
2025-03-17 12:27:15
698
原创 STM32 中断编程入门
STM32微控制器的中断系统是其功能强大和灵活性的重要组成部分。中断允许微控制器在执行主程序的同时,及时响应外部事件或内部条件的变化,从而实现高效的实时控制和数据处理。核心的中断控制器是NVIC(Nested Vectored Interrupt Controller),负责管理和分发所有的中断请求,并支持优先级分组,使开发人员能够为不同的中断源设置不同的优先级。STM32支持多种类型的中断,包括外部中断、定时器中断、串口中断和DMA中断。
2024-07-01 22:46:05
1002
原创 STM32 温湿度采集与OLED显示
基于I2C协议的OLED显示(利用U82G库)_u8g2-CSDN博客)除了关于I2C的基本内容外,本期博客再介绍软硬件I2C。上图为AHT20封装图。在学习STM32单片机及其应用的过程中,完成了使用I2C协议与AHT20温湿度传感器进行数据采集,并通过串口输出的任务。我学习了I2C总线通信协议的两种实现方式:硬件I2C和软件I2C。硬件I2C利用单片机内部的硬件模块直接控制I2C总线,具有高效稳定的特点,适用于对时序要求严格的应用场景;
2024-06-23 17:36:51
1194
1
原创 基于I2C协议的OLED显示(利用U82G库)
通过实践,我不仅深入理解了I2C协议的工作原理和时序要求,还掌握了如何驱动OLED屏幕进行文本和图形显示,以及使用开源GUI库U8G2在stm32平台上的移植方法。在理论知识的基础上,实际操作中我意识到了硬件连接的重要性,如何利用CubeMX设计HAL库的程序框架,配置GPIO管脚和I2C接口,确保设备能够正确工作。这一步骤是整个项目的基础,直接影响后续功能的实现和稳定性。移植U8G2库到stm32平台并不是一件简单的事情,需要对库进行适当裁剪和调整,以兼容目标硬件和显示需求。
2024-06-16 21:56:21
1058
原创 STM32 uc/OS-III多任务程序
在探索STM32微控制器与uc/OS-III多任务程序的学习过程中,我对嵌入式实时操作系统的运作原理有了更清晰的认识。通过将uc/OS-III移植到STM32F103微控制器上的实践,我深入理解了RTOS如何与特定硬件平台交互。这个过程中,我学会了如何编写多任务程序,并使用uc/OS-III提供的API进行任务管理和通信。除了提升了我的编程技能,这个学习经历还加深了我对实时系统和嵌入式开发的理解。同时对于KEIL、STM32CubeMX的使用也更加熟练,对于遇到的问题也能更好解决。
2024-06-08 23:13:02
991
原创 STM32 定时器与PWM的LED控制
STMicroelectronics是STM32微控制器中的重要块,具有丰富的外设和功能,其中包括定时器(Timer),用于执行任务或生成时间延迟。STM32的定时器包括基本、通用和高级类型,分别用于不同的应用场景,如PWM输出、输入捕获等。通过STM32定时器,开发人员可以实现时间测量、周期性任务执行、PWM输出控制等功能,满足各种需求。在STM32开发中,熟练掌握定时器的配置和使用至关重要。PWM(Pulse Width Modulation,脉冲宽度调制)是一种利用脉冲宽度。
2024-06-01 22:37:52
1226
原创 STM32实现HAL库LED点灯
STM32CubeMX是STMicroelectronics推出的图形化配置工具,简化了STM32微控制器的初始化和配置过程。其直观的界面和自动生成初始化代码的特点,使开发人员能够轻松配置引脚分配、时钟设置和外设参数。支持多种STM32系列微控制器,包括常用的STM32F系列。集成外设配置功能,包括GPIO、UART、SPI等,同时提供硬件资源冲突检测,帮助开发人员避免潜在问题。总之,STM32CubeMX是一款强大而方便的工具,加速了STM32微控制器应用的开发过程。
2024-05-26 21:07:09
3080
1
原创 STM32串口通信入门
准库方式完成LED的点灯或流水灯实验;STM32系统给上位机连续发送信息,并接收;STM32以查询方式接收上位机串口发来的数据,通过接受数据控制灯的亮灭。
2024-05-12 23:05:11
715
原创 STM32F103的LED亮灭(寄存器地址版)
STM32F103是STMicroelectronics推出的ARM Cortex-M3内核32位微控制器系列,也被称为STM32F1系列,适用于广泛的应用领域,包括工业控制、汽车电子、消费类电子、医疗设备等。该系列微控制器具有高达72MHz的运行速度和优秀的性能,内置不同容量的闪存和静态随机存储器,满足不同应用的存储需求。丰富的外设包括多个通用定时器、高级定时器、模拟和数字转换器、通信接口、USB接口、以太网MAC控制器等,使其具备了强大的功能扩展能力。
2024-05-06 21:22:06
1132
原创 使用51单片机模拟单总线时序与温度传感器DS18B20通信
DS18B20是一种数字温度传感器,采用单总线接口进行通信。它可以测量环境温度,并将其转换为数字信号输出。DS18B20具有高精度、数字输出、工作电压范围广、低功耗等特点,常用于各种温度监测应用中,如室内温度监控、工业自动化等。由于采用单总线接口,它可以方便地与微控制器等设备进行通信,并且可以通过一条总线连接多个DS18B20传感器,简化了布线结构。DS18B20传感器有几种不同的封装类型,包括TO-92、TO-220、TO-263等,适用于不同的应用场景和安装需求。
2024-04-25 20:49:10
1165
2
原创 单片机定时器与串口通信
蜂鸣器是一种电子元件,通常用于发出嗡嗡声或蜂鸣声。它通常由一个振动器和一个驱动电路组成。振动器产生声音的频率,而驱动电路控制振动器的工作方式和频率。在嵌入式系统或电子设备中,蜂鸣器常用于发出警报、提醒或产生特定的声音效果。它们可以通过改变驱动电路中的频率和脉冲宽度来产生不同的声音。例如,通过调整驱动信号的频率和持续时间,可以使蜂鸣器发出连续的长蜂鸣声、短促的蜂鸣声或者间隔的蜂鸣声。常见的蜂鸣器类型:压电蜂鸣器、磁性蜂鸣器。51单片机上的蜂鸣器是一种常见的外围设备,用于发出声音信号。
2024-04-21 21:47:50
1004
1
原创 中断与定时计数(51单片机)
经过我们之前的学习,我们已经能够掌握关于单片机周期性、延时函数,包括nop指令等内容,下面我们开始接触新的内容:中断和定时计数的相关知识。
2024-04-13 23:38:40
154
原创 汇编程序与周期性任务相关设计
在之前的学习中我们已经可以运用好汇编语言编写相关的程序了,下面我们对于程序的周期性进行探讨,在本次周期性设计中,我们要了解什么是周期,以及延时函数、NOP指令等,其中还有利用所学的汇编语言求平方数,以及我们到手的普中开发板进行实践等。
2024-04-01 19:36:33
967
原创 点亮流水LED灯
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是比较好的仿真单片机及外围器件的工具。Proteus从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
2024-03-10 16:04:30
1651
1
原创 Quartus和ModelSim软件的使用(全加器)
全加器是一种数字电路组件,用于将两个二进制数的每一位和一个进位位相加。全加器与半加器不同,它可以处理三个输入:两个待加的二进制位和来自前一位的进位。全加器的输出包括一个和位(Sum)和一个进位位(Cout)。一位全加器的运算法则如下:1、输入:A(加数的一位)B(被加数的一位)Cin(前一位的进位)2、输出:Sum(和位):A、B和Cin的异或结果,表示该位的二进制和。Cout(进位输出):A、B和Cin的任意两个或三个的与运算结果,表示该位的进位。
2023-12-17 21:45:31
839
1
原创 Quartus和ModelSim软件的使用(3-8译码器)
该软件是Altera公司推出的综合性CPLD/FPGA开发软件,软件支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
2023-12-17 21:15:16
1070
1
原创 SR触发器以及D触发器的仿真
触发器通常用于存储电路中的状态或者时序信息,例如在计数器和存储器等电路中使用。常见的触发器有SR触发器、D触发器等。不同类型的触发器有着不同的输入端口和输出端口,以及不同的状态转换规则。在SR触发器中,当遇到某些特定情况的输入时,就会出现不稳定的状态,例如与非门SR触发器,当R=0,S=0时,会出现禁止、不稳定的状态,这个时候,就需要用到D触发器了。触发器有两个稳定的状态:SET(置位)和RESET(复位)。与或非门的SR触发器相比,只将逻辑门进行了改变,连接方式还是原样,随之而来的的是真值表的改变。
2023-11-21 19:15:16
3026
原创 使用Multisim设计病房呼叫系统(四路抢答器)
Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。
2023-11-16 21:24:25
6205
2
原创 组合逻辑电路的分析与设计
一、设计组合电路的步骤在之前不断的学习中,我们知道了真值表、逻辑函数表达式、卡诺图化简基本概念,现在我们将通过分析设计组合逻辑电路来掌握组合逻辑电路的分析与设计、真值表、逻辑函数表达式、卡诺图化简概念和方法。一、设计组合电路的步骤图上为设计组合电路的一般步骤;随后,根据设计任务的要求建立输入、 输出变量, 并列出真值表。然后用逻辑代数或卡诺图 化简法求出简化的逻辑表达式。并按实际选用逻辑门的类型修改逻辑表达式。根据简化后 的逻辑表达式, 画出逻辑图, 用标准器件构成逻辑电路。
2023-11-03 22:09:01
411
原创 白钱百鸡问题及其衍生
中国古代数学家张丘建在他的《算经》(约5世纪成书)中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?意思是说:1只公鸡值5钱,1只母鸡值3钱,3只小鸡值1钱,某人用100钱买了100只鸡,问公鸡、母鸡、小鸡各有多少只?首先,输出方案是按照公鸡最少,其次母鸡最少的优先级来确定的,关于小鸡,则可以用鸡的总数和公鸡母鸡的数量来间接表示,所以,本题可使用两层嵌套循环解决,其中,最外层循环为公鸡数量,第二层为母鸡数量。
2023-10-24 20:04:30
275
原创 基本逻辑门电路硬件验证与仿真分析
一.使用到的部分设备数字电路实验箱;74LS00 二输入端四与非门,74LS20 四输入端两与非门。注意:需要提前下载调试好Logisim软件二.实验内容。
2023-10-24 19:12:06
129
原创 “辗转相除法”的10进制数转2进制
在数学中,辗转相除法,又称欧几里得算法(Euclidean algorithm),是求取最大公约数的一种算法。辗转相除法首次出现于欧几里得的《几何原本》中的第Ⅶ卷,书中的命题ⅰ和命题ⅱ所描述的就是辗转相除法,而在中国,辗转相除法最早出现在《九章算法》中。除了可以用来求最大公约数以外,还可以用来10进制转2进制。cout<<n[j];即实现了 "辗转相除法" 10进制转二进制的功能。二. “辗转相除法”的10进制数转2进制。7 ÷ 5 = 1 (余2)5 ÷ 2 = 2 (余1)2 ÷ 1 = 2 (余0)
2023-10-22 22:05:07
733
10
原创 使用Logsim设计二进制数原码-反码和补码的数字电路
一.原码、反码和补码1.原码我们以十进制的+3为例,其二进制原码为:0000 0011(其中最高位为符号位,"0"为正;"1"为负。同理,-3则表示为1000 0011综上可知,一个十进制数在转为二进制原码时,分正负两种情况,所以,其反码原码也同样分正负两种情况。2.反码以十进制数的+3为例,其反码为原码本身,即[+3]=[0000 0011]原=[0000 0011]反;而对于-3,其反码是在其原码的基础上,符号位不变,其余各个位取反;
2023-10-22 13:05:21
955
9
原创 虚拟机下载安装及其一些指令(VMware)
一.虚拟机下载安装一.虚拟机下载安装首先可以通过VMware(www.vmware.com)官网进行下载,其包含多个版本以供选择:在下载选项中,下拉到最下面,寻找到 "VMware Workstation Pro" 的选项,点击下载产品,选择一个版本进行下载。(注意需要密匙)也可选择去网上、b站等地方寻找资源。下载过后进行安装,自行勾选一些选项,然后耐心等待安装成功,然后输入密匙;注意:安装时要选择存储空间足够的盘,以免后续发生各种问题,建议空余空间在50G以上。
2023-10-22 11:59:27
1337
9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人