自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式Linux(树莓派)环境设置和交叉编译

树莓派

2022-06-22 19:20:45 508

原创 基于FPGA的VGA协议实现

VGA显示图像

2022-06-11 20:34:13 355

原创 数字电路基础与Quartus-II入门

目录一.安装Quartus-II软件和Modsim仿真软件二.在 Quartus-II 中自己用门电路设计一个D触发器,并进行仿真,时序波形验证1.创建项目2.创建模拟电路3.创建vwm格式波形文件进行仿真三.在 Quartus-II 中直接调用一个D触发器电路,进行仿真,时序波形验证,与上一步做比较1.创建新项目,方法同上2.创建方框文件3.进行仿真验证引用 一.安装Quartus-II软件和Modsim仿真软件 1.安装Quartus-II 13 https://blog.youkuaiyun.com/qq_432

2022-03-15 20:35:41 1408

原创 RT-thread Nano移植

一.CubeMX移植 具体过程参考官方文档:基于CubeMX移植RT-Thread Nano 1.Nano pack 安装 要获取 RT-Thread Nano 软件包,需要在 CubeMX 中添加 https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc 。 2.创建基础工程 3.系统时钟配置 /* board.c */ void rt_hw_board_init() { HAL_Init(); SystemClo

2021-12-31 09:33:54 189

原创 Email-FTP-RTSP协议实践研究

目录一.telnet客户端手工命令方式发送邮件1.开启“POP3/SMTP服务”和“IMAP/SMTP服务”项2.开启 telnet 客户端3.使用 CMD 测试 SMTP 服务二.Ubuntu系统理解Ftpd服务三.VLC访问互联网上公开直播视频源参考 一.telnet客户端手工命令方式发送邮件 1.开启“POP3/SMTP服务”和“IMAP/SMTP服务”项 2.开启 telnet 客户端 3.使用 CMD 测试 SMTP 服务 打开 cmd,连接邮件服务器 输入telnet smtp.qq.c

2021-12-30 21:43:17 784

原创 STM32+W5500网络通信

这里写目录标题一.TCP数据通信、DHCP自动获取IP1.获取官方资料二.应用层modbus协议编程参考 一.TCP数据通信、DHCP自动获取IP 1.获取官方资料 打开寄存器方式客户端模式例程 关闭网络连接,手动设置ip,网关,子网掩码 烧录程序,打开官方的调试软件进行测试: 二.应用层modbus协议编程 主函数: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration

2021-12-25 18:47:09 443

原创 SVM算法应用综合练习(2)--人脸表情识别

目录一.实现代码二.效果参考 一.实现代码 # 导入包 import numpy as np import cv2 import dlib import random from sklearn.svm import SVC from sklearn.svm import LinearSVC from sklearn.pipeline import Pipeline import os import joblib from sklearn.preprocessing import StandardScaler

2021-12-25 17:56:08 101

原创 将车牌数字分割为单个的字符图片

一.实现代码 import cv2 import numpy as np import os def stackImages(scale, imgArray): rows = len(imgArray) cols = len(imgArray[0]) rowsAvailable = isinstance(imgArray[0], list) # 用空图片补齐 for i in range(rows): tmp = cols - len(i

2021-12-24 18:37:34 1007

原创 Java网络编程进化史:从IO到NIO再到Netty

目录基于IO、NIO、Netty的Java网络程序IONIONetty基于Web的聊天室(Springboot+netty)动态网页的信息爬取自动填充百度网页的查询关键字,完成自动搜索爬取一个动态网页的数据爬取京东网站上的感兴趣书籍信息(如关键字“python编程”的前200本图书),并保存参考 基于IO、NIO、Netty的Java网络程序 IO public class Main { public static void main(String[] args) throws IOExcepti

2021-12-17 22:40:15 1345

原创 数字图像与机器视觉基础补充(1)

目录BMP图片初步解析二.用奇异值分解(SVD)对一张图片进行特征值提取(降维)处理;三.采用图像的开闭运算(腐蚀-膨胀),检测出图像中硬币个数四.采用图像梯度、开闭、轮廓运算等,对图片中的条形码进行定位提取;再调用条码库获得条码字符参考 BMP图片初步解析 打开一个彩色图像文件,将其分别保存为 32位、16位彩色和256色、16色、单色的位图(BMP)文件 计算图片在内存中的存储容量 位图大小计算公式为;(长×高×位深度)/8/1024 KB 计算这张256色位图的大小为(5125128)/8

2021-12-10 22:15:11 2488

原创 uc/os3多任务与实时日历

目录uc/os3多任务1.使用CubeMX建立Hal库工程2.移植uCOSⅢ1.下载uCOSⅢ源码2.准备工作3.将uCOS文件添加进工程中4.添加文件路径5.为bsp.c和bsp.h添加代码6.修改main.c文件7.修改其余文件部分代码8.usart.c文件中使用printf函数需要重定向8.参数配置3.实现三个task1.修改gpio.c代码2.修改main.c代码4.运行效果STM32的日历读取、设置和输出1.使用CuBeMX创建工程2.配置工程总结参考 uc/os3多任务 1.使用CubeMX建立

2021-12-05 00:43:41 565

原创 游戏客户端编程

目录一.内容二.主界面和主要代码实现效果参考 一.内容 编写一个网游客户端,游戏服务器的校园内网IP地址为 10.1.230.74,端口为3900,采用TCP连接。 1)连接成功后,可以将服务器发来的消息不停地显示在 listbox 中; 客户端要发给服务器的数据,通过 textbox输入 或者点击button; 能够播放背景音乐; 每隔30秒,变换一次游戏背景图片。 二.主界面和主要代码 其中添加了玩家输入框和send按钮 代码 服务器端 private NetworkStrea

2021-11-27 22:17:02 304 2

原创 基于I2C/SPI的温湿度采集与OLED显示

目录一.使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集1.“软件I2C”和“硬件I2C”1.I2C协议2.STM32的硬件I2C3.软件模拟I2C2.编程实现:每隔2秒钟采集一次温湿度数据,并通过串口发送到上位机(win10)二.基于STM32F103显示数据1.显示自己的学号和姓名2.水平滚动显示长字符总结参考 一.使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集 1.“软件I2C”和“硬件I2C” 1.I2C协议 I2C 通讯协议(Inter-Int

2021-11-26 19:08:55 2550 2

原创 TCP/UDP编程基础

目录一.控制台程序使用 UDP 通信二.Form窗口程序使用 TCP 通信参考 一.控制台程序使用 UDP 通信 创建控制台程序 客户端 using System; using System.Text; using System.Net; using System.Net.Sockets; namespace Client { class Program { static void Main(string[] args) {

2021-11-24 19:45:43 1911 2

原创 网络协议抓包分析与爬虫入门

目录一.wireshark抓取网络数据包(疯狂聊天室)1.下载并打开疯狂聊天室程序2.wireshark抓包二.对南阳理工学院ACM题目网站练习题目数据的抓取和保存1.打开目标网站,查看代码2.利用jupyter爬取三.爬取重庆交通大学新闻网站中近几年所有的信息通知的发布日期和标题全部爬取下来,并写到CSV电子表格中1.打开网站2.运行代码爬取 一.wireshark抓取网络数据包(疯狂聊天室) 1.下载并打开疯狂聊天室程序 两台设备输入相同的房间号并发送信息 2.wireshark抓包 对比三

2021-11-20 20:54:12 2790 1

原创 SVM算法应用综合练习

目录一.Libsvm使用步骤数据格式创建项目文件数据二.人脸识别数据集的建立收集20张照片采集对应20张图片的68个特征点数组通过20个特征,计算出平均(mean)特征数组 face_feature_mean.txt.参考 一.Libsvm LIBSVM是台湾大学林智仁(LinChih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参

2021-11-18 23:11:25 818 2

原创 串口传输&点阵汉字的字模读取与显示

目录一.串口连接二.传输文件三.总结 一.串口连接 准备两个USB TO TTL和杜邦线若根,将两个USB TO TTL的RX,TX引脚交叉连接,并将两个USB接口接上一台笔记本电脑(模拟两台计算机之间的串口传输)。 二.传输文件 传输文件: 利用可以传输文件的串口调试助手,选择端口,这里可以看见串口COM4,这里选择的波特率是115200,数据位8,停止位1,无校验位。 接收文件: 选择端口,这里可以看见端口COM5,两个端口波特率需要设置相同,所以也为115200 选择文件,点击发送,可以看

2021-11-12 21:44:36 2251 1

原创 SVM深入理解&人脸特征提取

目录一.SVM深入理解1.支持向量机(SVM)2.惩罚参数C3.核函数4.多分类支持向量机.5.鸢尾花数据集5.1线性处理5.2 多项式分类5.3高斯核6.月亮数据集6.1线性SVM6.2多项式核6.3高斯核二.人脸特征提取1.用python3+opencv3.4+dlib库编程,打开摄像头,实时采集人脸并保存、绘制68个特征点2.给人脸虚拟P上一付墨镜总结参考 一.SVM深入理解 1.支持向量机(SVM) 给定训练样本集,在特征空间上找到一个分离超平面,将样本点分到不同的类。其中当且存在唯一的分类超平面,

2021-11-12 11:57:38 1590

原创 STM32中断与DMA通信编程

目录一.stm32中断模式控制LED灯1.STMCubeMX配置项目2.Keil5完善代码3.编译之后烧录二.STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据1.Stm32CubeMX配置项目2.Keil5完善代码3.效果总结参考 一.stm32中断模式控制LED灯 1.STMCubeMX配置项目 引脚配置:A4输出控制灯的亮灭,A1持续输出高电平,A7持续输出低电平,都设置为GPIO_Output; B5模拟开关,设置为GPIO_EXTI5。 配置exit 配

2021-11-08 20:30:55 293

原创 网络抓包与HTTP协议

目录一.TCP/IP协议二.HTTP协议1.介绍2.特点三.网络抓包验证1.下载wireshark2.wireshark抓包TCP三次握手总结参考 一.TCP/IP协议 Transmission Control Protocol/InternetProtocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议等组成(当然还有其他后来发展起来的网络协议,还包括ARP,ICMP,IGMP,

2021-11-06 18:48:24 227

原创 线性判别准则与线性分类编程实践

一.编程生成模拟数据集,进行LDA算法练习 1.线性判别准则LDA 1.LDA的基本思想 LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。 假设我们有两类数据 分别为红色和蓝色,如下图所示,这些数据特征是二维的

2021-11-05 20:03:09 154

原创 多元线性回归算法预测房价

一.线性回归理论基础 一元线性回归是分析只有一个自变量(自变量x和因变量y)线性相关关系的方法。一元线性回归分析的数学模型为:y = a+bx+ε。 使用偏差平方和分别对参数a和参数b求偏导,可以得到线性模型的未知参数a、b的最小二乘估计值,其中,偏差平方和定义为∑(yi-a-bXi)2,a和b的唯一解如图所示。 参数的最小二乘估计 为了方便回归效果显著性检验,根据b的估计,引入LXX、LYY、LXY三个数学符号,这三个数学符号定义如图所示。 在现实问题研究中,因变量的变化往往受几个重要因素的影响,此

2021-11-02 16:10:40 1075

原创 ID3决策树算法及其Python实现

一.理论基础 1. 纯度(purity) 对于一个分支结点,如果该结点所包含的样本都属于同一类,那么它的纯度为1,而我们总是希望纯度越高越好,也就是尽可能多的样本属于同一类别。那么如何衡量“纯度”呢?由此引入“信息熵”的概念。 2. 信息熵(information entropy) 假定当前样本集合D中第k类样本所占的比例为pk(k=1,2,…,|y|),则D的信息熵定义为: Ent(D) = -∑k=1 pk·log2 pk (约定若p=0,则log2 p=0) 显然

2021-10-31 22:14:39 1078

原创 完成一个STM32的USART串口通讯程序

一.相关原理 1.USART串口协议 UART 通用异步收发传输器(Universal AsynchronousReceiver/Transmitter),通常称作UART,是一种通用的串行异步全双工数据收发传输器(总线)。 UART的作用是:把“要传输的数据”在串行通信与并行通信之间转换。在嵌入式领域,作为把并行信号转成串行信号的硬件设备,UART通常被集成于MCU内部。 UART与USART: UART:universal asynchronous receiver and transmit

2021-10-30 20:05:58 420

原创 使用HAl库实现流水灯效果

一.新建项目 点击new project后进入这个页面,选择自己的芯片信号,此处为STM32F103C8,pakage栏选择LQFP48,然后start project 配置引脚,点击A4,B5,C14三个引脚,全部选择GPIO_Output选项 将系统接口换为Serial Wire 接下来配置GPIO,System view中点击GPIO,然后选中一个引脚,配置如下图所示四个选项 创建项目,输入相关信息 完成之后点击右上角按钮生成项目代码,等待一会选择open project 打开后如图 二

2021-10-25 19:45:01 720

原创 从JDBC到Mybatis

一.新建项目 选择string initializr,jdk选自己的版本,输入项目地址和名称后next: 勾选下面三个选项,点击finish。 项目结构 在com.example.mybatis路径下分别新建四个包,分别为bean、controller、mapper、service。再分别在其路径下新建对应文件。 在resources文件夹下新建Mapper文件夹,并添加mybatis.xml文件。 项目代码 Account代码: package com.example.mybatis.bean;

2021-10-22 20:42:05 156

原创 STM32F103寄存器方式点亮LED流水灯

配置GPIO端口 1.配置时钟使能 时钟控制名字叫做RCC,属于AHB总线。 寻找时钟使能寄存器的地址: 2.输入输出模式和输出速率设置 本次实验采用通用推挽输出模式,最高输出时钟频率2Mhz。分别用到A4、B5、C14三个引脚。其中A4、B5属于端口配置低寄存器偏移地址为0x00,C13属于端口配置高寄存器偏移地址为0x04。 配置对应引脚寄存器,基地址+偏移量 //----------------GPIOA配置寄存器 ----------------------- #define GPIOA_CR

2021-10-22 13:42:53 121

原创 GCC背后的故事&OpenCV相识何必曾相逢

gcc生成静态库.a和动态库.so 1.例子程序编写 先创建三个例子程序main.c,x2x.c,x2y.c文件 代码如下: main.c #include<stdio.h> int main(){ int a=2,b=6; float c=x2x(a,b); float d=x2y(a,b); printf("%f\n",c); printf("%f\n",d); return 0; } x2x.c extern float x2x(int a,int b){ float c

2021-10-17 22:55:49 420

原创 Git入门&Web前端初窥

一.Git入门 1.git 在官网下载git并安装 链接:git下载 打开下载的安装程序,安装选项一直默认即可 安装好后windows开始菜单文件夹就会出现git的相关文件 2.Github 进入GitHub官网,申请好账号 Github 记住账号与注册邮箱 接下来打开git bash,在git-bash下分别输入并会回车 git config --global user.name “GitHub账号” git config --global user.email “GitHub账号注册的邮箱” 注意

2021-10-15 19:06:41 114

原创 STM32的C与汇编语言混合编程

欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片

2021-10-12 23:19:48 123

原创 重温MySQL与JDBC小时代

一.利用数据库管理工具navicat去使用MYSQL 需要使用的工具Mysql和Navicat可自行搜索安装及破解教程 1、新建一个对MySql的连接,输入连接名和密码(密码为安装mysql时设置的密码) 右键新建数据库 设置好后点击确定 创建测试数据 ...

2021-10-12 21:09:18 80

原创 ARM汇编程序调试

创建并运行项目 打开MDk后选择project->New uVision Project 设置好项目名称和存储位置,然后选择芯片,本人选择的是STM32F103C8 选择运行环境后点击ok 添加源文件:鼠标右键单击Source Group 1,选择Add New Item to Group: 设置好文件类型,名称和路径后点击add: 测试代码 在test.s中编译并调试如下代码: AREA MYDATA, DATA AREA MYCODE, CODE ENTRY EXPORT

2021-10-03 21:24:47 201

原创 初识线性回归

用excel中数据分析功能做线性回归 分别选取20、200、2000(或20000)组数据,进行练习。记录回归方程式、相关系数R2 20组: 200组: 2000组: 用jupyter编程(不借助第三方库),用最小二乘法,重做第1题 新建项目后输入下列代码 import pandas as pd def read_file(raw):#根据行数来读取文件 df = pd.read_excel('D:/GoogleDownload/weights_heights(身高-体重数据集).xls',s

2021-10-01 16:06:06 132

原创 软件设计模式(以Java为例)

一.单例模式 常见的实现方式有:懒汉模式、饥汉模式、双重校验锁、静态内部类、枚举等方式实现,那我们我们紧接着就具体的一个一个的来看看他们的实现: 懒汉模式: /** * @author hz * @version 1.0 */ public class Singleton { private static Singleton instance = null; private Singleton(){} public static synchronized Singleton g

2021-09-20 21:18:03 278

原创 Spring Boot 开发入门--- RESTful 接口的 Web服务

一.HTTP协议 一.HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTT

2021-09-20 20:39:17 160

原创 Spring Boot 开发入门--- helloworld web

1.在Idea上创建基于Spring Boot的web 项目 点击Create New Project选择Spring Initializr并Next 將jar包換成你自己的版本,我的是1.8版本,点击next 我们需要创建web项目,选择web,然后点next直到finish 2.编写controller 在主程序包下新建一个controller包 package com.sample.controller; import org.springframework.web.bind.annota

2021-09-20 18:18:10 93

原创 Ubuntu系统下c语言的编译及makefile的初步应用

一.ubuntu和windows系统下c语言程序的编译 1.ubuntu系统 首先编写主程序main1.c:代码如下 让后编写子程序sub1.h: 接着用gcc命令编译:gcc main1.c sub1.h -o main1,最后用.\main1运行结果 2.windows系统 工具:Visual Studio Code 建立程序文件main1.c和sub1.h: #include"stdio.h" #include"sub1.h" float x2x(int a,int b) int main(){

2021-09-16 21:08:03 116

原创 2021-09-12

IDEA环境搭建和String入门 一.JDK8及IDEA环境安装 1.JDK8环境配置 (1).下载jdk8: 下载地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 选择对应自己电脑的版本。我的电脑是64位的,选择最下面的Windows x64版本 (2)下载安装好jdk后,开始配置环境变量(右击我的电脑->属性->高级系统设置->环境变量) 在系统变量中新增

2021-09-12 18:39:38 103

原创 CSS学习小结

CSS学习小结一 什么是css二 css选择器三 CSS如何生效1.行内样式2.嵌入样式3.链接样式四 颜色、尺寸、对齐1.颜色2.尺寸3.对齐五 盒子模型盒子模型概念六 边框与边距叠加外边距七 定位八 浮动九 不透明度十 伪类和伪元素伪类伪元素 一 什么是css CSS是级联样式表(Cascading Style Sheets)的缩写。HTML 用于撰写页面的内容,而 CSS 将决定这些内容该如何在屏幕上呈现。 网页的内容是由 HTML的元素构建的,这些元素如何呈现,涉及许多方面,如整个页面的布局,元素

2021-06-20 16:12:51 176

原创 HTML初步学习小结

什么是HTML HTML:是Hyper Text Markup Language(超级文本标记语言)的缩写,HTML不是一种程序,只是一种控制网页中数据显示的标识语言。 "超文本"(hypertext)是指连接单个网站内或多个网站间的网页的链接。链接是网络的一个基本方面。只要将内容上传到互联网,并将其与他人创建的页面相链接,你就成为了万维网的积极参与者。 常用的HTML标签 1.<html></html>: <html>元素。这个元素包裹了整个完整的页面,是一个

2021-03-14 13:25:30 106

空空如也

空空如也

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

TA关注的人

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