- 博客(52)
- 收藏
- 关注
原创 FPGA学习之 状态机实现数码管的数字时钟
FPGA学习之 状态机实现数字时钟开发板型号:EP4CE6F17C8六位数码管原理图:由图可知,数码管段选和片选均为低电平有效。由于人眼的视觉残留,我们控制一定频率对每一位数码管进行刷新,就能实现显示6位数字时钟。项目功能描述:1.实现数字时钟自动计时,设置6个计数器,分别计数时分秒的十位和个位2.时间设置功能3.闹钟设置4.按键实现模式切换(主要是 初始计时、时间设置、闹钟设置)5.蜂鸣器发声(设置的闹钟时间到来时,蜂鸣器按一定频率播放”两只老虎“)代码:顶层模块:module
2021-10-14 19:36:51
2261
2
原创 FPGA学习之 直接数字频率合成器(DDS)
目录FPGA学习之 直接数字频率合成器(DDS)FPGA学习之 直接数字频率合成器(DDS)DDS的原理:直接数字频率合成器(Direct Digital Synthesizer, DDS)是一种把数字信号通过 D/A 转换成模拟信号的数字合成技术。它有查表法和计算法两种基本合成方法。由于查表法结构简单,只需要在 ROM中存放不同相位对应的幅度序列,然后通过相位累加器的输出对其寻址,经过数/模转换和低通滤波(LPF)输出便可以得到所需要的模拟信号。DDS系统主要有相位累加器、波形存储器、数模(D/A
2021-10-12 20:37:02
5561
4
原创 FPGA学习之 RAM
参考:FPGA中ROM与RAM相关知识总结代码部分:module ram #(parameter RAM_WIDTH = 8 , RAM_DEPTH = 128)( clk , rst , wr_en , wr_din , wr_addr , rd_en , rd_addr , rd_dou
2021-10-08 15:15:00
399
原创 FPGA学习之 异步FIFO
FPGA学习之 异步FIFO在FPGA学习过程中遇到的,写篇博客记录下自己的学习经历参考以下文章,很详细。网上找了很多博客参考,这篇我觉得是真的很容易看懂了,代码部分也很详细[异步FIFO—Verilog实现]------alangaixiaoxiao附上代码:module fifo_async #(parameter DATA_WIDTH = 16,parameter DATA_DEPTH = 256)( rst , wr_clk , wr_en
2021-10-08 14:38:41
156
原创 FPGA学习之 呼吸灯
目录FPGA学习之 呼吸灯FPGA学习之 呼吸灯用FPGA实现2s呼吸灯,使其达到由暗变亮再变暗的效果。什么是呼吸灯??呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。如何实现呼吸灯??主要通过控制led灯点亮的时间来实现控制灯光的强弱,从而达到 ”呼吸“ 的效果。设计思路:设置一个2us和一个2ms的时钟以及一个2s的时钟计数器,其中每一级计数器都由前一个计数器的计满信号驱动,当前一个计数器计满时,后一个计数器加一。计数器计满后,归零。2ms 时 2us的10
2021-10-08 14:30:20
768
原创 FPGA学习之Verilog语法
FPGA学习之Verilog语法最近在学FPGA,做点笔记。。。1.Verilog代码设计规范1.一个always只产生一个信号,一个信号只能在一个always中赋值2.always 是描述一个信号的方法,在某种情况下,这个信号的值为多少;在其他情况下,值又为多少,全部要考虑清楚3.条件判断只用 If - else / if - else if - else 和case4.敏感列表含有 posedge 或 negedge 的一定是时序逻辑5.设计时,想要立即有
2021-09-23 19:40:00
162
原创 FPGA学习之线性反馈移位寄存器(LFSR)
FPGA学习线性反馈移位寄存器(LFSR)最近在学习FPGA的各种计数器的时候遇到了LFSR(线性反馈移位寄存器),感觉学起来还是比较难,在这里做个记录。。刚开始接触LFSR真的是很难理解它,包括二进制数的各个Bit的异或规则,多项式的表示和理解,还有什么周期之类的,学起来太复杂了。。。这是我在网上看到的一个大佬写的的,写的非常详细了,找了很久才找到这么易懂的讲解,在这里分享一下。。。详解线性反馈移位寄存器(LFSR)...
2021-09-23 18:44:01
742
原创 VGA协议与图像输出Verilog编程
VGA协议与图像输出Verilog编程VGA简介实验内容烧录程序VGA简介1.什么是VGA???VGA(Video Graphics Array),视频图形阵列,是一种视频传输标准,具有分辨率高、显示速度快、颜色丰富等优点,不支持音频传输2.VGA显示原理VGA的数据引脚1、2、3(RED、GREEN、BLUE)输入的不是简单的0、1数字信号,而是模拟电压(0V-0.714V)。当引脚具有不同的电压时,VGA显示器显示不同的颜色。在VGA视频传输标准中,视频图像被分解为红、绿、蓝三原色
2021-07-10 21:59:13
824
原创 卷积神经网络猫狗分类
基于Tensorflow和Keras实现卷积神经网络——猫狗分类环境搭建猫狗数据集猫狗分类的实例——基准模型环境搭建1.安装 Anaconda教程百度有很多,这里就不详细写了。2.配置tensorflow、kerasa.创建虚拟环境conda create -n tf1 python=3.6#tf1是自己为创建虚拟环境取的名字,后面python的版本可以根据自己需求进行选择b.安装tensorflow和keraspip install -i https://pypi.tuna.tsing
2021-06-18 16:43:32
968
1
原创 信息熵与压缩编码基础
信息熵与压缩编码基础信息熵一串消息包含A,B,C,D,E共5类符号,其内容为AABBBBAAAACCCCCCCCCEEEEEEDDDDEEEEEEEEEEEEE,分别对其进行香农编码和霍夫曼编码香农编码霍夫曼编码一幅1024*768的24位RGB彩色图像一共在内存中占有多少字节? 如果将其保存为非压缩格式的BMP文件,文件有多少字节?信息熵信息是个很抽象的概念。人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。直到1948年,香农提出了“信息熵
2021-05-28 22:15:41
224
原创 HLS编程环境入门
HLS编程环境入门一、 HLS是什么?与VHDL/Verilog有什么关系?1、什么是HLS?2、HLS与VHDL/Verilog的关系二、HLS有哪些关键技术问题?目前存在什么技术局限性?1、 HLS的优势2、HLS的劣势三、完成一个入门级的HLS程序1、工具选择:**quartus 18.1**一、 HLS是什么?与VHDL/Verilog有什么关系?1、什么是HLS?HLS (基于HTTP的自适应码率流媒体传输协议)常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流
2021-05-28 21:48:07
127
原创 ROS话题通信、服务通信编程
ROS话题通信、服务通信编程ros的工作空间创建工作空间编译工作空间环境变量设置功能包创建功能包编译功能包ROS通信编程1.话题编程自定义话题消息2.服务编程ros的工作空间主要是一些存放工程开发相关文件的文件夹,其中主要包括src,build,devel,install文件夹。其中:src:代码空间(Source Space )build:编译空间(Build Space)devel:开发空间(Development Space)install:安装空间(Install Space)创
2021-05-09 10:44:48
857
4
原创 凸优化基础知识
目录标题1、计算几何是研究什么的?2、计算几何理论中(或凸集中)过两点的一条直线的表达式,是如何描述的?与初中数学中那些直线方程有什么差异?有什么好处?(按自己的体会)3、凸集是什么? 直线是凸集吗?是仿射集吗?4、三维空间中的一个平面,如何表达?5、更高维度的“超平面”,如何表达?6、什么是“凸函数”定义?什么是Hessian Matrix 矩阵? 如何判别一个函数是凸函数?f(x)=x^3 函数是凸函数吗?7、什么是“凸规划”?如何判别一个规划问题是凸规划问题。下例是凸规划问题吗?1、计算几何是研究什
2021-04-30 21:58:01
149
1
原创 Robei的安装、使用
Robei的安装、使用一、下载Robei二、安装三、注册四、Robei的基本使用1、界面2、Robei三元素3、实例——与门设计与门的结构与真值表:设计步骤:测试文件设计一、下载Robei地址:http://robei.com二、安装下载解压后:按照说明安装就可以了三、注册Robei官方网站:http://robei.com/register.php如实填写信息就可以了。Robei EDA 软件中,点击Help -> Register根据上面注册的用户名、密码填写,然后
2021-04-27 19:53:43
702
原创 在线Verilog编程学习
在线Verilog编程学习一、门电路学习1.非门2.与门或非门二、组合逻辑相关练习:1.二对一多路复用2.全加器3.卡诺地图三、时序逻辑相关练习1.D 触发器2.D锁存器3.1~12的计数器参考资料一、门电路学习1.非门问题描述:https://hdlbits.01xz.net/wiki/Notgate解决代码:module top_module( input in, output out ); assign out=~in;endmodule结果展示:2.与门问题描述:http
2021-04-27 18:43:43
621
原创 FPGA的NIOS-II开发入门
目录硬件设计项目创建Qsys系统设计进行逻辑连接和生成管脚芯片引脚设置编译分配物理针脚软件设计启动 Nios II SBT创建工程流水灯控制程序运行项目硬件设计项目创建详见:FPGA入门项目创建部分Qsys系统设计1.点击Tools->Platform Designer(有些可直接点击Qsys)2.启动后,点击file->save保存文件,文件名随意(尽量不要用中文)3.双击clk_0,对clock进行时钟设置,设置为50M4.添加CPU和外围器件从 PD 的元件池中选择以
2021-04-24 18:50:32
281
原创 FPGA设计入门
FPGA设计入门1位全加器设计———原理图与VHDL设计初步实验目的半加器的设计使用原理图输入的方法进行底层元件设计和层次化设计的主要步骤:半加器仿真1位全加器设计———原理图与VHDL设计初步实验目的通过1位全加器的详细设计,掌握原理图输入以及Verilog的两种设计方法。 软件基于quartusII 13.0版本,开发板基于Intel DE2-115。半加器的设计1位全加器可以用两个半加器及一个或门连接而成, 因此需要先完成半加器的设计。使用原理图输入的方法进行底层元件设计和层次化设计的主要
2021-04-07 21:25:26
284
原创 Jupyter中的Python矩阵基本运算的学习记录
Jupyter中的Python矩阵基本运算的学习记录python矩阵操作python 矩阵乘法实验目录:python矩阵操作1.引入numpy,以np作为简写:import numpy as np2.使用mat函数创建一个2*3矩阵:a=np.([[1,2,3],[4,5,6]])a3.使用 shape 可以获取矩阵的大小a.shap4.使用下标读取矩阵中的元素:a.T5.进行行列转换。#进行行列转换a.transpose()#查看a.T实际上:官方文档
2021-04-05 21:56:53
3605
原创 数字电路基础与Quartus-II入门
数字电路基础与Quartus-II入门Quartus-II 、Modelsim 安装Quartus-II 中用门电路设计一个D触发器,并进行仿真,时序波形验证什么是D触发器:Quartus-II输入原理图及时序仿真Quartus-II 、Modelsim 安装请参考:https://blog.csdn.net/qqq080/article/details/115326395?spm=1001.2014.3001.5501Quartus-II 中用门电路设计一个D触发器,并进行仿真,时序波形验证什么
2021-04-02 20:19:42
1007
原创 第5周实验--线性/非线性规划问题求解
这里写目录标题媒体组合案例使用Excle实现线性规划媒体组合案例现有5个广告投放渠道,分别是日间电视、夜间电视、网络媒体、平面媒体、户外广告,每个渠道的效果、费用及限制如下表限制条件:1.电视广告至少投放20次(包括日间和夜间);2.触达用户数(曝光量)不少于10万;3.电视广告投入费用不超过3万元;4.现在公司总共给到4万的营销费用,要求咨询电话量的最大化。使用Excle实现线性规划创建数据源:三要素:①决策变量设各媒体使用次数 x1,x2,x3,x4,x5②目标函数 咨
2021-04-01 21:26:08
342
原创 ROS中Rviz工具的使用——显示摄像头视频显示
这里写目录标题ROS中Rviz工具的使用——显示摄像头视频显示ROS中Rviz工具的使用——显示摄像头视频显示1.打开摄像头设备2.查看摄像头是否可以正常使用用cheese命令在这之前,我们先安装sudo apt-get updatesudo apt-get install cheese...
2021-03-20 23:02:28
1885
原创 鸢尾花Iris数据集进行SVM线性分类练习
标题Anaconda安装创建虚拟环境鸢尾花数据集使用SVM线性分类LinearSVC(C)方式实现分类画出决策边界添加边界线Anaconda安装Anaconda3-2020.02-Windows-x86_64安装及使用步骤创建虚拟环境打开创建虚拟环境创建完成后,需要等待一段时间安装然后安装 numpy、pandas、sklearn、matplotlib包命令行输入pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名鸢尾
2021-03-20 16:41:53
1453
原创 数据的回归与分类分析(excel)
数据的回归与分类分析对“父子身高”数据集进行线性回归分析对“父子身高”数据集进行线性回归分析选取父子身高数据为X-Y,,用excel计算线性回归方程和相关系数、方差、p值等1.对原始数据进行筛选,得到父亲儿子的身高数据(去掉了重复值)分析出的图像如下:可看出,线性回归方程成立。...
2021-03-20 15:14:49
508
原创 Android Studio4.1.2的下载、安装、使用
目录安装Android Studio创建一个Hello World程序模拟器调试真机测试应用图标修改:安装Android Studio1.下载:https://developer.android.google.cn/studio/2.安装:安装时直接下一步即可,只需注意安装路径和快捷方式创建3.配置Android Studio启动Android Studio选择don’t send这时会提示没有Android SDK ,我们先不管他,选择cancel然后next,这里你需要确认路径是
2021-03-09 21:26:39
5837
1
原创 Ubuntu18.04安装ROS Melodic
目录什么是ROS安装步骤结果展示参考什么是ROS1、ROS—(Robot OperatingSystem)是一个机器人软件平台,它能为异质计算机集群提供类似操作系统的功能。ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换庭(switchyard)项目。到2008年,主要由威楼加拉吉继续该项目的研发;2、ROS提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合
2021-03-05 17:13:38
314
原创 STM32的PWM和DAC练习
用STM32F103输出一路PWM波形PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。PWM的基本原理:对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。
2021-01-09 19:56:56
127
2
原创 学生成绩管理系统
目录标题基于JSP+Servlet+MySQL8.0 环境搭建 的学生成绩管理系统一、环境搭建1、JDK15 配置:[https://blog.csdn.net/qq_45940791/article/details/109327106](https://blog.csdn.net/qq_45940791/article/details/109327106)2、Tomcat9.0 配置:3、JDBC 下载:4、MySQL 、Navicat 安装及新建数据库1.启动 MySQL2.Navicate 连接 Mq
2021-01-08 23:51:19
426
原创 HTTP和MQTT协议实践
HTTP和MQTT协议实践一、安装Java开发环境和Java IDE编程工具 Eclipse 或 IDEA,基于HTTP协议(严格地说是 “REST接口规范”)读取互联网上web服务网站内容:1)读取指定城市的天气预报信息;2)给指定手机号码发送验证码;安装Java环境:Java JDK安装和配置1、读取指定城市的天气预报信息代码:package weather;import java.io.BufferedReader;import java.io.IOException;im
2021-01-04 18:30:53
1017
原创 STM32的三种Boot模式
STM32的三种Boot模式BOOT模式的介绍所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。启动模式1.主闪存存储器(Main Flash memory) STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。2.系统存储器(System memory) 从系统存储器启动,这种模式启动的程序功
2020-12-30 21:43:59
913
原创 STM汇编程序设计
ARM汇编基础之基于MDK创建纯汇编语言的STM32工程创建工程project->New uVision Project配置环境选择运行环境CMSIS下选择CORE;Device下Startup,其中包含了启动文件;在工具栏点击魔术棒图标进行设置添加源文件测试代码 AREA MYDATA, DATA AREA MYCODE, CODE ENTRY EXPORT __main__main MOV R0, #10 MOV R1, #11 MOV R2
2020-12-30 21:02:24
62
原创 基于SPI/IIC接口的OLED数据显示
目录基于SPI/IIC接口的OLED数据显示实验任务:实验环境资源下载引脚连接用字模工具找到自己的名字抠出来显示自己的学号和姓名滚动显示长字符基于SPI/IIC接口的OLED数据显示实验任务:理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:显示自己的学号和姓名;显示AHT20的温度和湿度;上下或左右的滑动显示长字符(最好使用硬件刷屏模式)实验环境keil5野火mini开发板基于SPI的0.96寸OLED显示屏资源下载http
2020-12-27 21:17:49
114
原创 Altium Designer绘制STM32的PCB图及相关文件
Altium Designer绘制STM32的PCB图及相关文件创建工程打开altinum designer 创建一个工程,添加 原理图文件。
2020-12-25 21:46:59
386
原创 温湿度传感器采集
实验内容:学习I2C总线通信协议,完成基于I2C硬件协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。一、什么是“软件I2C”和“硬件I2C”?想要控制 STM32 产生 I2C 方式的通讯,可以采用软件模拟或硬件 I2C 这两种方式。所谓软件模拟,即直接使用 CPU 内核按照 I2C 协议的要求控制 GPIO 输出高低电平。如控制产生 I2C 的起始信号时,如图 ,先控制作为 SCL 线的 GPIO 引脚输出高电平,然后控制作为 SDA 线的 GPIO 引脚在此期间完
2020-12-22 20:31:16
1964
原创 SOCKET应用实例
SOCKET应用实例这里给出两个编程实例代码,一个是面向流式套接字c/s例子,一个是非阻塞的多人聊天服务器示例。1.面向流式套接字c/s例子准备打开Ubuntu、远程连接树莓派,分别在树莓派和Ubuntu上编写服务端和客户端代码并编译。ubuntu:mkdir daima //创建文件夹cd daima //进入文件夹gedit server.c //创建 server.c 文件gcc server.c -o server树莓派mkdir daima //创建文件夹cd d
2020-12-08 19:27:28
256
原创 原始套接字编程:Teardrop伪造IP包
目录原始套接字概述功能含义原始套接字和标准套接字的区别Teardrop伪造IP包Teardrop 攻击原理Teardrop 防御方法编写teardrop代码原始套接字概述raw socket,即原始套接字,可以接收本机网卡上的数据帧或者数据包,对于监听网络的流量和分析是很有作用的,一共可以有4种方式创建这种socket。1.socket(PF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包2.socket(PF_PAC
2020-12-07 21:40:26
574
原创 tcp协议“三次握手”“四次挥手”
目录一、tcp协议二、TCP的通信过程1.tcp三次握手wireshark抓包TCP的四次挥手wireshark抓包Fiddler 抓包一、tcp协议TCP(Transmission Control Protocol 传输控制协议) 是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。TCP在IP报文的协议号是6。二、TCP的通信过程1.tcp三次握手第一次握手首先客户端向服务器端发送一段TCP报文,其中:标记位为SYN,表示“请求建立新连接”;序号为Seq=X(X一般为1
2020-12-05 13:32:57
81
原创 stm32基于FreeRTOS的多任务程序
目录实验环境实验目的实验步骤代码:实验环境1.野火STM32MINI开发板2.keil5实验目的在STM32下完成一个基于FreeRTOS的多任务程序,执行3个周期性task,具体任务如下:task1,每间隔500ms闪烁(变化)一次LED;task2,每间隔2000ms,向串口发送一次指令数据“helloworld!";task3,每间隔5000ms,从AHT20采集一次温湿度数据(不考虑硬件情况,仅写出整个多任务框架模拟代码)。实验步骤1.FreeRTOS程序框架移植FreeR
2020-12-03 21:00:43
704
原创 STM32的USART窗口通讯程序
目录基于寄存器与基于固件库的stm32 LED流水灯例子的编程方式有什么差异寄存器和固件库开发的差别和联系STM32的USART窗口通讯程序串口连接程序烧写基于寄存器与基于固件库的stm32 LED流水灯例子的编程方式有什么差异寄存器和固件库开发的差别和联系固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道。向上提供用户函数调用的接口(API)。https://www.cnblogs.com/llguanli/p/6822515.htmlSTM32的USART窗口通讯程序步骤:
2020-12-02 21:21:30
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人