自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于FPGA的AHT10传感器温湿度读取

一、系统框架二、i2c接口三、i2c控制模块状态机设计状态转移图STARTINITCHECK_INITIDLETRIGGERWAITREAD代码四、数据处理模块串口代码五、仿真testbench设计仿真波形六、效果七、源码

2022-08-03 19:55:10 3140 8

原创 基于FPGA的售货机

数码管6位,从左往右,依次是两位的投币输入金额,两位的商品价格。以及两位的找零金额。初始显示1位,两位,1位。位选总共六种显示状态,段选10种状态。

2022-07-30 09:13:24 1552 4

原创 基于FPGA的图像实时采集

首先整个系统由摄像头模块、SDRAM数据缓存模块、vga显示模块、PLL时钟模块以及图像处理模块组成,这里先不用图像处理模块。摄像头模块里面负责处理摄像头采集的数据,根据ov5640摄像头手册说明,我们需要先通过I2C协议去配置摄像头相关寄存器的参数。在摄像头上电后需要等待20ms。然后再通过I2C发送设备ID、写地址和数据,其中地址先发送高8位再发送低8位。这里包含摄像头时钟、图像大小、帧率以及其他和图像相关的参数。这里最重要的配置参数就是摄像头的图像分辨率和图像的色彩格式,这里通过配置的分辨率为128

2022-07-29 11:02:34 7598 7

原创 基于FPGA的超声波测距

distance超声波测距模块负责数据的采集,vga、uart、beep、数码管根据采集到的数据分别进行vga的屏幕打点、串口输出到上位机、蜂鸣器根据数据大小进行鸣叫以及数码管显示采集到的数据。RTL视图代码三、串口模块2.串口发送控制模块串口控制模块把接受到的24位BCD码转换成ASSIC码,并且清除高位零位和添加单位和小数点。把处理好的数据加入FIFO中,再通过串口发送模块进行发送。四、蜂鸣器模块蜂鸣器模块把接受到的数据去掉低两位,也就是精度变成厘米级别。当处理完后的数据在MAX_DI

2022-07-04 09:23:42 2915 3

原创 基于树莓派的嵌入式Linux之简单入门代码

可以在Windows下编写好代码后通过软件或者命令等方式把文件直接上传到linux上代码如下

2022-06-22 11:32:21 718

原创 基于HarmonyOS分布式小游戏之你画我猜

游戏分为单双人模式游戏流程图如下参考官方教程Data Ability基本概念简单创建一个Data用于管理关键字,用户可以增加、删除关键字。在进行游戏前可以选择数据库中的关键字进行游戏。2.删除3.查询三、绘图模块参考官方自定义组件文档说明自定义组件用户可以选择画笔的粗细。部分代码如下2.自定义颜色选择器用户通过点击对应的颜色来选择画笔的颜色,通过滑动来查看更多颜色3.自定义画板用户根据画笔的粗细和颜色在画板上面滑动来进行绘图部分代码三、 跨端通信分布式游戏需要在主设备每完成一次绘

2022-06-15 16:01:35 1193 2

原创 OnlineJudge使用说明

点击右上角的注册用户填写相关信息即可完成注册注册完成后点击登录后输入用户密码即可完成登录登录成功后点击右上角的菜单里面的我的设置,进入到个人信息设置,根据自身需求完成信息的填写。点击题目,进到题目列表。可以通过题目难度进行过滤可以通过输入题目、题目ID进行查找题目可以通过右侧标签查询相关标签类型题目进入题目后,可以查看到题目相关描述,由于题目大部分通过爬虫进行处理,部分描述存在描述不全等情况,后续需要人工进行修正。在下方的代码区域可以选择对应语言以及书写代码,完成后点击提交即可。管理

2022-06-08 11:32:02 1909

原创 基于FPGA的VGA显示彩条、字符、图片

什么是VGA?VGA不是用来显示的那块屏幕,而是用来传输信号的接口。VGA全称是Video Graphics Array,即视频图形阵列,是模拟信号的一种视频传输标准。根据当前行地址判断需要显示的颜色即可。在子模提取工具里面输入需要显示的字符并设置字符大小为64*64然后点击文件-另存为,把图片保存为BMP图片再点击文件-打开,把保存的BMP图片打开得到整体的字符再点击选项按如下参数设置最后点击生成字符并保存字符为文本文件最后得到字符如下把得到的字符在verilog里面使用即可由于一

2022-06-05 21:51:50 4706

原创 Verilog状态机练习

文章目录要求一、第一题1. 新建一个项目2. 新建一个training_1的Verilog HDL文件3. 新建training.v的Verilog HDL文件4. 新建training_tb.v的Verilog HDL文件5. 新建Tcl_script1.tcl的 Tcl Script 脚本6. 配置7.仿真图二、 第二题1. 新建一个training_2的Verilog HDL文件2. 新建一个key_debounce的Verilog HDL文件3.修改training.v4. 修改training_t

2022-05-02 17:14:31 1193

原创 基于Nios II的流水灯

文章目录一、硬核1.创建项目2.Qsys3.二、软核代码三、效果四、总结一、硬核1.创建项目选择cycloneIVE系列的EP4CE11529C72.Qsys点击 Tools 下拉菜单下的 Qsys 工具启动 Qsys 后,点击 File —> save,如图 1.7 所示,在文件名中填写为 kernel,后点击 OK双击clk_0设置时钟频率为50000000Hz在 “component library” 标签栏中找到 “Nios II Processor” 后点击 Add在

2022-04-12 16:28:02 412

原创 Quartus-II之D触发器

文章目录一、原理图(一)创建项目(二)绘制D触发器原理图(三)查看仿真波形1. 配置仿真工具2.加载仿真库文件3.添加仿真文件4.仿真二、调用库(一)绘制原理图(二)查看仿真波形三、Verilog语言(一)新建Verilog文件(二) 查看仿真波形一、原理图(一)创建项目设置项目路径以及项目名称、顶层名选择器件型号最终信息(二)绘制D触发器原理图点击file -> new -> Block Diagram 新建框图D触发器由一个非门、两个输出、两个输入、四个与非门共同构成

2022-03-11 21:26:39 2005

原创 Quartus-II之全加器

文章目录一、新建项目二、半加器和全加器三、仿真四、绑定引脚一、新建项目设置项目名选择芯片型号二、半加器和全加器点击file -> new -> Block Diagram 新建框图半加器原理图绘制完成后进行编译,再把编译好的文件设置为Symbol File完成后可以直接调用半加器再新建一个框图来绘制全加器,全加器如图三、仿真点击file -> new -> University Program VMF新建波形文件点击Edit -> ins

2022-03-11 21:25:03 2714

原创 鸿蒙HarmonyOS学习笔记之基于CommonDialog实现自定义AlertDialog

文章目录效果预览一、基本概念二、接口说明三、实现1.AlertDialog 类2.Dialog整体布局dialog_alert.xml3.按钮点击效果button.xmlbutton_state_pressed.xmlbutton_state_natural.xml4.预览四、使用效果预览一、基本概念CommonDialog是一种在弹出框消失之前,用户无法操作其他界面内容的对话框。通常用来展示用户当前需要的或用户必须关注的信息或操作。对话框的内容通常是不同组件进行组合布局,如:文本、列表、输入框、网

2022-02-16 22:41:30 1004

原创 鸿蒙HarmonyOS学习笔记之基于CommonDialog实现自定义PromptDialog

文章目录效果预览一、基本概念二、接口说明三、实现1.PromptDialog 类2.Dialog整体布局dialog_prompt.xml3.按钮点击效果button_confirm_dialog_ok.xmlbutton_state_natural_confirm_dialog_ok.xmlbutton_state_pressed_confirm_dialog_ok.xmlbutton_confirm_dialog_cancel.xmlbutton_state_natural_confirm_dialog

2022-02-16 22:41:20 901

原创 鸿蒙HarmonyOS学习笔记之Service Ability实现跨端通信

文章目录一、基本概念二、使用1.创建Service2.创建ConnectionHelper3.创建RemoteProxy4.启动service5.连接Service三、注意四、参考一、基本概念基于Service模板的Ability(以下简称“Service”)主要用于后台运行任务(如执行音乐播放、文件下载等),但不提供用户交互界面。Service可由其他应用或Ability启动,即使用户切换到其他应用,Service仍将在后台继续运行。Service是单实例的。在一个设备上,相同的Service只会存

2022-02-11 00:27:41 1398

原创 鸿蒙HarmonyOS学习笔记之基于CommonDialog实现自定义ConfirmDialog

文章目录效果预览一、基本概念二、接口说明三、实现1.ConfirmDialog类2.Dialog整体布局dialog_confirm.xml3.按钮点击效果button_confirm_dialog_ok.xmlbutton_state_natural_confirm_dialog_ok.xmlbutton_state_pressed_confirm_dialog_ok.xmlbutton_confirm_dialog_cancel.xmlbutton_state_natural_confirm_dialo

2022-02-11 00:25:20 903 1

原创 Python基于keras训练简单微笑识别

文章目录一、数据预处理二、训练模型创建模型训练模型训练结果三、预测效果四、源代码pretreatment.pytrain.pypredict.py一、数据预处理实验数据来自genki4k提取含有完整人脸的图片def init_file(): num = 0 bar = tqdm(os.listdir(read_path)) for file_name in bar: bar.desc = "预处理图片: " # a图片的全路径

2022-01-18 16:51:49 4327 2

原创 基于SpringBoot+MyBatis+Angular+MySQL实现简单的商品管理系统

文章目录一、功能需求二、数据库ER图三、Angular前端设计四、SpringBoot后台服务器设计五、源代码一、功能需求分普通用户和管理员两种权限,普通用户只能进行购买商品、修改个人信息、查询个人订单。管理员可以进行商品、订单、用户的增删改查。二、数据库ER图三、Angular前端设计运行idea后浏览器直接输入即可看到如下界面http://localhost:8080/angular/index.html登录界面商品管理界面商品信息界面订单管理界面订单信息界面购物界面

2022-01-16 20:20:21 1147 1

原创 STM32F407ZET6音乐播放器

文章目录一、主要功能二、flash读写1.读flash2.写flash3.获取wav格式音频数据4.操作三、播放音频1.原理2.播放“欢迎光临”提示音3.播放SD卡内的音频文件读取SD信息以及控制播放音乐播放wav格式音频四、红外遥控1.原理2.捕获红外遥控五、源代码一、主要功能SD 卡模块存储至少 5 首以上音乐文件(wav 格式);片内 Flash 存储 1-2 句短提示音(5-6 秒长度),比如“xxx 的音乐播放器欢迎你!”、“SD 文件找不到!”;最小系统板上电后自动查找读取 SD 卡

2022-01-12 23:07:17 4382 5

原创 STM32F407ZE基于RT-Thread和ZigBee实现多传感器检测以及数据上传到oneNet

文章目录一、RT-Thread1.简介2.使用声明任务线程、任务栈大小、任务函数创建线程以及开启线程调度定义任务函数二、ZigBee1.简介2.使用三、esp8266WiFi模块四、传感器检测MQ-2烟雾传感器特点读取光敏电阻特点读取火焰传感器特点读取五、效果一、RT-Thread1.简介RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器

2022-01-12 16:31:22 2909

原创 STM32F103C8基于Modbus协议读取温湿度

文章目录一、任务二、代码1.通过CubeMX配置stm322.主要代码重定向输出串口一添加中断处理main.c三、效果四、总结一、任务stm32f103通过串口二向485总线轮询发送问答帧访问所有modbus温湿度传感器模块,并且把得到的应答帧进行解析,得到对应的温湿度的值,再通过串口一发送至PC端。二、代码1.通过CubeMX配置stm32配置RCC配置时钟配置串口二波特率4800配置串口二DMA配置串口一配置中断2.主要代码重定向输出串口一usart.c#incl

2022-01-12 16:07:56 5720 2

原创 Python提取wav格式文件的data并转为十六进制格式重定向输出

代码import structimport osimport sysif __name__ == '__main__': # wav文件 filepath='welcome_01.wav' # 打开二进制文件 bin_file = open(filepath, 'rb') # 跳到data bin_file.seek(42,0) # 读取data大小 data=bin_file.read(4) # 转10进制,小端对齐

2022-01-05 13:14:42 1572

原创 基于FTP实现简单文件上传与下载

文章目录一、FTP简介常用命令二、上传与下载三、文件拼接四、总结五、参考一、FTP简介HTTP是Hyper Text Transfer Protocol,超文本传输协议;面向网页的。FTP是File Transfer Protocol,文件传输协议;面向文件的。(soap的默认端口号8880,ftp的代理服务器的默认端口号是21)FTP也是基于C/S模式而设计的。在进行FTP操作的时候,即需要客户应用程序,也需要服务器端程序。我们一般先在自己的计算机中执行FTP客户应用程序,在远程服务器中执行FT

2021-12-30 19:32:00 602

转载 基于SMTP实现简单收发邮件

文章目录一、SMTP二、实现命令效果三、总结四、参考一、SMTPSMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。二、实现命令1.连接服务器tel

2021-12-29 23:02:19 1860 1

原创 AltiumDesigner绘制STM32F103C8T6最小系统电路原理图

文章目录一、创建项目1.新建空项目2.添加新的PCB LIbrary和Schematic Library二、下载STM32F103C8T6官方文档1.2.3.三、1.Tools-IPC COmpliant Footprint Wizard2.3.4.参考文档设置对应的值5.finsh四、1.一、创建项目1.新建空项目2.添加新的PCB LIbrary和Schematic Library二、下载STM32F103C8T6官方文档1.2.3.三、1.Tools-IPC COm

2021-12-25 19:56:13 5685

原创 STM32F103基于W5500实现Modbus简单TCP通信

文章目录一、Modbus/TCP协议1.查询报文2.响应报文二、从机代码1.初始化从机网络2.简单响应函数3.main函数循环等待连接三、效果四、总结一、Modbus/TCP协议1.查询报文00 6D 00 00 00 06 01 03 00 00 00 0100 6D 查询编号00 00 协议00 06 数据包长度01 设备编号03 功能码00 00 起始地址00 01 查询寄存器个数2.响应报文00 6D 00 00 00 05 01 03 02 00 1700 6D 查询编号

2021-12-14 15:25:53 13568 4

原创 STM32F103C8基于RT-Thread实现简单多任务

文章目录一、RT-Thread二、CubeMX移植三、简单demo四、总结五、参考一、RT-Thread参考官网RT-Thread Nano 简介二、CubeMX移植参考官方文档基于 CubeMX 移植 RT-Thread Nano注意:1.需要初始化USART1且需要修改USART2位USART12.取消注释#include "finsh_config.h"的注释三、简单demo创建两个线程线程一的灯500ms闪烁一次线程二的灯1000ms闪烁一次其中main函数在这里也是其中的

2021-12-11 18:28:20 1942

原创 Python基于Selenium实现爬取京东特定商品

文章目录一、小练手1.自动填充百度网页的查询关键字完成自动搜索2.到指定网站去爬取十句名言二、爬取京东特定商品一、小练手1.自动填充百度网页的查询关键字完成自动搜索通过查看百度网页的源码找到搜素框的id以及搜素按钮的id获取百度网页driver = webdriver.Chrome("E:\GoogleDownload\chromedriver_win32\chromedriver.exe")driver.get("https://www.baidu.com/")填充搜索框search

2021-12-10 22:29:28 1294

原创 SpringBoot+Netty实现简单聊天室

文章目录一、实现1.User类2.SocketSession类3.SessionGroup4.WebSocketTextHandler类5.WebSocketServer类6.index.html二、效果三、总结四、参考一、实现1.User类import java.util.Objects;public class User { public String id; public String nickname; public User(String id, String

2021-12-09 20:21:16 339

原创 Java基于IO、NIO和Netty实现简单C/S聊天

文章目录一、IO简介实现效果二、NIO简介实现效果三、Netty简介实现效果四、总结五、参考一、IO简介IO:每个小朋友配一个老师。每个老师隔段时间询问小朋友是否要上厕所,如果要上,就领他去厕所,100个小朋友就需要100个老师来询问,并且每个小朋友上厕所的时候都需要一个老师领着他去上,这就是IO模型,一个连接对应一个线程。实现服务器package io;import java.io.IOException;import java.io.InputStream;import java.n

2021-12-09 17:35:02 853

原创 Java基于OpenCV+Hog+SVM实现微笑检测

一、配置Java的OpenCV环境二、训练1.读取所有的图片,截取图片中的人脸并保存2.把所有的人脸图片进行随机分组3.计算梯度值4.提取Hog值5.训练模型6.模型评估7.训练结果三、预测1.读取摄像头2.创建显示图片的窗体3.捕获读取到的人脸4.标注人脸5.对获取到的人脸进行提取Hog特征值并进行预测6.对预测结果进行相关操作7.预测结果四、源代码SmileTrainSmilePredict五、总结六、参考

2021-12-05 00:54:06 819

原创 OpenCV+Python实现将车牌数字分割为单个的字符图片

一、实现代码1.图片预处理读取图片处理车牌上的螺丝转灰度二值化闭运算找字符边界绘制边界预处理效果2.切割字符预处理图转灰度计算每一列的黑色和白色数量以及最大值定义找右边界函数切割字符以及保存切割结果到文件切割结果3.源代码二、原数据三、最终结果四、总结五、参考

2021-12-03 23:14:36 7943 2

原创 OpenCV+Python简单实践

文章目录一、基础练习1.基础函数2.找中心3.修改4.读取图片和视频一、基础练习1.基础函数读取图片img = cv.imread('../Resources/Photos/park.jpg')转灰度图片gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)高斯滤波blur = cv.GaussianBlur(img, (7,7), cv.BORDER_DEFAULT)边缘检测canny = cv.Canny(blur, 125, 175)膨胀d

2021-12-03 15:09:03 835

原创 OpenCV+Python简单实践之硬币检测以及条形码检测

一、简单图片格式1.位图2.文件压缩比二、用奇异值分解(SVD)对一张图片进行特征值提取(降维)处理1.代码2.效果三、采用图像的开闭运算(腐蚀-膨胀),检测出2个样本图像中硬币、细胞的个数1.硬币检测代码读取图片转为灰度图片图片二值化腐蚀膨胀找到硬币中心标识硬币显示结果最终结果源码2.细胞检测四、 采用图像梯度、开闭、轮廓运算等,对图片中的条形码进行定位提取;再调用条码库获得条码字符读取图片转为灰度图片高斯滤波处理Sobel算子计算梯度差均值方波消除高频噪声

2021-12-01 22:25:15 2679

原创 STM32F103基于RTC实现简单日历

文章目录一、 RTC1.定义:2.应用3.应用领域4.特点二、CubeMX创建项目1.配置RCC2.配置RTC3.配置串口4.配置时钟5.配置项目三、RTC操作1.HAL库RTC相关操作函数2.读取RTC初始日期定义日期时间对象获取日期和时间并输出结果3.输出当前时间初始化日期和时间获取日期和时间并输出结果四、总结五、参考六、源码一、 RTC1.定义:RTC的英文全称是Real-Time Clock,翻译过来是实时时钟芯片。 RTC芯片是一种能提供日历/时钟(世纪、年、月、时、分、秒)及数据存储等功能

2021-11-29 21:33:53 3870

原创 STM32F103基于uCOS实现多任务

文章目录一、项目创建1.配置GPIO2.配置RTC3.配置USART14.配置RCC5.配置时钟6.配置项目二、usOS移植三、创建多任务1.定义相关变量以及任务函数2.定义相关任务函数3.创建任务4.最终效果四、总结五、参考六、源码一、项目创建1.配置GPIO2.配置RTC3.配置USART14.配置RCC5.配置时钟6.配置项目二、usOS移植参考文章STM32F103C8T6移植uC/OS-III基于HAL库超完整详细过程三、创建多任务1.定义相关变量以及任务函数/

2021-11-29 19:54:06 6474 2

原创 C#基于TCP实现简单游戏客户端

文章目录一、界面二、代码1.播放音频2.播放图片3.登录和退出游戏4.命令交互5.信息展示6.最终代码三、效果四、总结五、参考六、源码一、界面左上方播放音频按钮和停止播放下面是图片展示再下面是进入游戏以及退出游戏最后是命令输入框右边是消息框二、代码1.播放音频需要用到WindowsMediaPlayer组件,在常规组件的选择项里面可以找到。实现代码 private void start_Click(object sender, EventArgs e) {

2021-11-26 16:02:26 5131

原创 C# 基于TCP 实现扫描指定ip端口

文章目录一、单线程扫描1.代码2.界面3.结果4.抓包二、多线程扫描1.代码2.界面3.结果4.抓包三、总结四、源码1.github2.gitee一、单线程扫描1.代码using System;using System.Net;using System.Net.Sockets;using System.Windows.Forms;using System.Threading;namespace MultithreadingScanningPort{ public partial c

2021-11-23 20:20:05 3871

原创 C#基于UDP实现简单客户端和服务器消息发送和接收

文章目录一、通过控制台直接发送数据1.创建新的C#控制台程序2.客户端代码3.服务器代码4.运行结果二、创建简单可视化界面进行通信1.创建新的窗体应用一、通过控制台直接发送数据1.创建新的C#控制台程序2.客户端代码using System;using System.Text;using System.Net;using System.Net.Sockets;namespace Client{ class Program { static void Main

2021-11-23 14:24:24 7892 1

原创 STM32F103基于spi实现OLED显示

文章目录一、原理二、实现1.显示中文2.滚动显示3.显示字符串4.读取温湿度5.显示温湿度三、结果1.开机显示欢迎信息2.循环读取温湿度以及滚动显示我的id四、总结五、参考六、源码1.github2.gitee一、原理SPI的定义SPI(Serial Peripheral Interface)就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 s

2021-11-20 15:47:18 9575 5

空空如也

空空如也

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

TA关注的人

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