- 博客(191)
- 资源 (12)
- 收藏
- 关注
原创 非常好看的html网页个人简历
文末获取gitee链接在前几天逛b站的时候,发现了个比较实用的东西-----个人简介网页版,相当于网页版的个人简历,相较于PDF形式的,网页版所能呈现内容更加丰富,而且更加美观,在BOOS上被HR小姐姐要简历的时候,给她一个网址,岂不是美哉(##)。界面美观,动画给力。代码简单,只包括一个HTML和一个CSS,便于在它上面进行修改,我这个零基础的小白,经过一番琢磨后,也能让它为我所用,甚至更上一层楼,有些夸张了哈(⊙o⊙)…适配了手机端,即使HR小姐姐是用手机在和你聊天,也能完美地展现自己。
2023-02-25 09:20:11
15391
3
原创 ESP32四轴飞控硬件设计
目前许多入门级开源飞控都是基于STM32系列的,基于此系列的有非常严重的短板,例如说通信方面,需要外置通信模块。ESP32本身带有WIFI和蓝牙,在通信方面有着一定的优势,更加简化设计以及硬件成本。文末有完整资料。
2023-02-05 10:42:51
1962
1
原创 WS2812全彩RGB驱动方法
买了一个圆形的WS2812模块玩玩,特来总结一下驱动方法,感觉对比于普通的RGB灯来说,还是有点不一样的。踩了一些坑,也在此列出。
2022-12-22 20:25:36
7692
1
原创 STM32F4系列单片机选型详解
本篇文章将全面介绍STM32F4系列单片机的详细情况,在实际项目中对F4系列的选型具有一定的指导意义。欢迎关注 微信公众号FPGA之旅哦!!!!整个F4可以分为三个系列:入门型系列, 基础系列,高级系列。以下数据来源于官网链接。下列数据对每个系列对应的具体型号以及新整功能作出了简单的描述。对于绝大多数使用者来说,高级系列是用不到的,而且在开源项目中也很少见,所以这里不对其进行详细的分析了。使用最多的就是基础系列,在基础系列中,使用最多的型号为F407系列,为什么呢?
2022-12-09 21:03:25
9290
1
原创 lvgl页面管理 简单实现
在lvgl使用的过程中,最初的时候,肯定都会遇到这样的问题,页面之间的切换以及空间的释放。如果不合理的设计的话,一上来就将所有的页面进行初始化,那将会占用许多不必要的内存空间,硬写之间的切换的话,界面一旦多起来,那切换逻辑将会绕来绕去,最终会写不下去。所以合理设计一个页面管理函数或者说是对象将会非常重要。欢迎关注 !!!!!!!基于上面三点就可以完成一个基本的页面管理对象了,是不是非常简单。页面管理对象的实现,页面管理对象主要是为了方便页面之间的切换以及内存的释放(即删除没有加载在界面上页上的资源)。
2022-12-06 23:00:01
5745
24
原创 ESP32_DIY_硬件设计(一)
看到最近ESP32特别流行,我也来跟跟风,绘制了一块ESP32的PCB板玩玩。使用的是ESP32 WROOM 32模组作为主控,据说是刚刚出来的新品,性能特别强。简要介绍一下PCB板的情况:1.69寸触摸屏FPC接口TF卡插座四个按键蜂鸣器然后IO就全部使用上了,没有额外的IO了,本来还想加上个MPU6050或者温湿度传感器的。哎,奈何IO太少了,这也是其最大的缺点吧。
2022-11-20 19:44:47
1808
原创 FPGA实现八位数字抢答器设计
三个硬件的驱动模块可以提前写好(gzh中都已给出相应的教程),编写完成后,就是按照要求编写逻辑代码,最简单的方法是使用状态机进行控制。之前编写的驱动程序是四个数码管显示,需要将其修改为三个数码管显示,修改如下,将sel位宽修改为3,并将数码管4上显示的数据删除,参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。选手编号统计,当按键按下的时候,寄存当前选手的编号,并且状态转移,再次按下时,无效。需要完整代码的可以关注微信公众号。
2022-11-13 14:36:28
4554
4
原创 FPGA之旅设计99例之第二十二例----Sobel算法边沿检测
本例将在上例的基础上,添加一个简单的图像处理算法—边缘检测(Sobel算法)。串口助手发送图片过来之后,结果边缘检测算法处理之后再输出到VGA进行显示。边沿检测算法主要是针对灰度图进行处理的,所以模块内部还需要添加个RGB565转灰度的功能。边缘检测算法有很多种,例如Sobel、Canny、Prewitt等等,各有其优缺点。本次选择Sobel进行学习,主要是因为其相对而言比较简单,FPGA易于实现。
2022-11-06 08:54:40
2607
7
原创 FPGA之旅设计99例之第二十一例----VGA串口SDRAM显示图片
本例将接着上一例实现的sdram控制器进行封装。上例中只是实现了一个基本的控制器,在实际使用中,通常读写时钟是两个不同频率的,所以并不能满足要求。在本例中,将对读写接口进行封装,将读写接口封装成FIFO接口这样封装主要是为了让,读写的时候,满足设计要求(存储OV5640传输过来的图像,并且显示在VGA显示器上)。最后将设计好的接口,配置之前写好的串口以及VGA驱动,实现一个小例子。通过串口发送图片,sdram存储,vga显示。本例完成后,就可以使用此sdram模块做很多事情啦!欢迎关注微信公众号。
2022-10-22 16:24:25
2045
原创 FPGA之旅设计99例之第二十例---SDRAM存储器实现
本例将介绍SDRAM的使用。SDRAM是一个存储器件,存储容量大,存储速度比较快,速度可达100M,特别适合用来当中视频或者音频中的存储器件。在采集到OV5640传输过来的图像数据的时候,FPGA的片上资源是没有那么大的存储空间进行存储的,必须通过外部的存储器件进行存储。恰好开发板上有一片SDRAM,所以用此来进行存储,一般而言入门级的FPGA开发板上都是配置的SDRAM,中高级一点的是DDR2(alter开发板),DDR3(xilinx开发板)。
2022-10-16 17:15:10
2541
4
原创 FPGA之旅设计99例之第十九例----OV5640上电及初始化
在上例中,介绍了配置OV5640所需的SCCB时序,以及具体的实现。本例将介绍与初始化相关的重要寄存器,以及上电时序。OV5640的寄存器非常多,从它的寄存器的地址为16bit就可以看出,在商家提供的一些例程中,可以看到配置寄存器的语句多达200行,无法一时间学习掌握所有的寄存器。所以只需要掌握一些重要即可,例如控制图像输出格式、控制图像输出大小、控制图像输出帧率的寄存器。下面就开始介绍吧完整程序关注微信公众号FPGA之旅回复FPGA之旅设计99例之第十九例获取下载链接。
2022-10-14 18:52:30
2451
原创 FPGA驱动eMMC系列(三)-----命令的发送与接收
本篇文章,将介绍如何编写命令的发送,与响应的接收,这部分代码,这部分代码。对应所以模式而言,发送与接收的时序都是一样的,所以这部分代码对应所以的eMMC而言,都是通用的。先来看一下整体的框图,命令模块下包括发送与接收,还是比较容易的。关注微信公众号FPGA之旅回复eMMC代码V1获取完整工程,目前支持高速和HS200.HS400有点问题,可能是我PCB的问题。FPGA驱动eMMC系列(二)-------上电初始化FPGA驱动eMMC系列(一)-------简介。
2022-10-13 09:55:03
3403
原创 FPGA之旅设计99例之第十八例----OV5640摄像头SCCB时序
从本例开始,接下来的几例,都将围绕OV5640摄像头来学习,教大家学会,如何通过OV5640摄像头,采集图像,并且显示在VGA显示屏上。本例将简要地介绍一下OV5640摄像头,如何详细讲解一下SCCB接口,该接口主要用于配置OV5640,闲话不多说。下一篇将介绍 OV5640寄存器。
2022-10-09 15:36:14
3347
原创 FPGA之旅设计99例之第十七例-----VGA显示
本例是FPGA之旅设计的第十七例,本例将介绍如何使用FPGA来驱动VGA显示器,并且显示彩条,为后面的图像显示做好准备。实物图如下,之前的显示器,一般都是VGA接口。现在可能都是HDMI接口的了,但也会转到VGA接口上弄,比较比较方便,因此掌握VGA时序是非常重要的VGA接口原理图如下,信号接口可以分为三大类行同步信号,FPGA输出,默认为高电平,每一行显示之前,都要将其拉低,一定的周期,用于同步。帧同步信号,FPGA输出,默认为高电平,每一帧图像显示之前,都要将其拉低,一定的周期,用于同步。
2022-10-04 20:47:21
1598
原创 FPGA驱动eMMC系列(二)-------上电初始化
本篇文章将介绍eMMC如何上电启动,并且初始化进入到我们所需要的模式当中去,同样只介绍相关的内容,一些无关却重要的知识点,可以自行查看手册。
2022-10-04 09:49:38
3745
20
原创 FPGA驱动eMMC系列(一)-------简介
由于项目需要使用到eMMC存储器,所以特地的去学习了一下。在网上也找了许多资料,但大多是介绍性的,以及对文档的翻译,没能很好的讲解如何从零编写Verilog代码来控制eMMC。看了很多文章,但大多大同小异,还是无从下手。故在这里分享我的学习例程,教大家如何编写eMMC驱动,以使用为主,至于一些理论和不相关就不作介绍了,同时可以作为参考,避免踩坑,同时欢迎大家与我交流,共同进步。本例基于JESD84-B50手册进行学习,也就是eMMC5.0,目前最新的好像是eMMC5.1,但差距应该不大。
2022-10-03 16:11:28
7569
21
原创 FPGA之旅设计99例之第十六例----舵机驱动
本例将是FPGA之旅设计的第十六例,将介绍如何驱动舵机,实现任意角度的旋转,也是一个小模块,只需要三个IO即可完成驱动,一般购买模块的时候,就已经用杜邦线引出来了,根据杜邦线的颜色区分对应IO口的功能,一般由如下三种颜色组成红色: VCC,接3.3V - 5V棕色: GND橙色: 信号IO,用于驱动舵机的旋转。
2022-10-02 07:48:50
2327
1
原创 FPGA之旅设计99例之第十五例-----超声波测距
本例为FPGA之旅设计99例中的第十五例,本例将介绍如何使用超声波模块,进行测距。这个模块在智能小车中使用的比较多,使用起来比较方便,仅需四个引脚即可驱动。模块细节如下图,来源于淘宝。
2022-09-24 18:58:25
1586
1
原创 FPGA之旅设计99例之第十四例-----接收红外遥控数据
本例是FPGA之旅设计的第十四例,本例将红外遥控的使用,并将红外接收器接收到红外遥控的数据显示在数码管上。红外遥控接收器模块,非常简单,也是由GND,VCC和数据三个引脚组成,通过杜邦线可以直接连接在FPGA的IO口上,产品细节如下。
2022-09-12 20:51:10
975
1
原创 FPGA之旅设计99例之第十三例-----FPGA在OLED上显示DHT11数据
这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。在开始本例之前,先补充一下,在上例中,代码中有个位置有错误,就是DHT11是先发送湿度然后发送温度,代码中给弄反了,已修改。显示效果如下本例中,OLED显示一共分为如下5个状态。在初始化完成后,屏幕显示的是杂乱无章的数据,所以在初始化完成后,要进行一次刷新,将OLED中的数据全部写0。然后进行显示固定不变的支符,例如像温度湿度这样的字符。
2022-09-07 20:18:39
2259
13
原创 FPGA之旅设计99例之第十二例-----采集DHT11温湿度
本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的例程。本例将通过signal top实时采集波形,确定采集到的数据是正确了(数据中带了校验)。应用电路如下,和DS18B20一样,只需要一根数据线与FPGA进行通信。每次通信都是FPGA发起的,随后DHT11会输出40bit的数据给FPGA。
2022-09-06 14:22:46
1208
1
原创 FPGA之旅设计99例之第十一例-----OLED显示字符
这是FPGA之旅的第十一例了。在前面的例子中,已经对OLED有了一个基础的了解,本例将介绍如何在OLED上实现支符的显示,为后面的例程做准备。显示字符需要先使用字摸软件取模,将得到的字摸数据存储到寄存器当中,这个过程可以利用Python生成。然后设置好显示的XY坐标,最后发送字符数据即可。对于字符占两个page的话,也就是字符高度大于8的情况,中间还需要重新设置page。字摸软件选用PCtoLCD2002,这个比较常用,也是比较方便,界面如下图所示。
2022-09-05 14:25:01
2153
4
原创 FPGA之旅设计99例之第十例-----串口上位机模拟OLED屏
这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结和上一例,以及第四例多bytes串口通信做一个有趣的例程。简单来说,就是利用Qt编写上位机,通过串口与FPGA进行通信,然后FPGA将接收到的数据,通过IIC接口发送给OLED,就这么一个流程。
2022-09-03 15:01:48
1121
3
原创 FPGA之旅设计99例之第九例-----驱动0.96寸OLED屏
这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计,同时使用第五例写好的IIC模块,驱动OLED屏。这里就只介绍最常用的0.96寸屏,其它的一样。OLED共支持8080并口、SPI和IIC三种接口,同样也只介绍IIC接口的用法。0.96寸OLED屏幕的分辨率为128×64,内部有一块GRAM用来存储显示的数据。
2022-09-03 11:50:41
4181
10
原创 FPGA之旅设计99例之第八例-----DS18B20温度采集
第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。通过原理图可以看出,DS18B20温度传感器只有一条总线,可想而知,其结构的简单化,导致了其操作的复杂化。更多关于该传感器的一些特性参数,以及性能指标,可以详细阅读官网提供的数据手册。接下来主要讲解怎样使用它。............
2022-09-01 08:57:14
1083
原创 FPGA之旅设计99例之第七例-----综合数字时钟
在学习了前面几例之后,就可以做一个小设计啦,本次分享的是数字时钟,也是在课设中经常出现的题目,虽然难度系数系数不大,但可以很好的锻炼一下综合能力,特别是对于刚刚接触FPGA的小伙伴来说。演示视频.工程也上传到微信公众号FPGA之旅啦!需要可以回复FPGA之旅设计99例之第七例获取下载链接时-分-秒显示,为24小时制通过按键可以动态调整时间通过按键可以动态选择要调整的时间,对应的数码管闪烁按键消抖将前面的几个案例都结和起来了(没有包括uart和iic)。1.RTL图。............
2022-08-31 19:06:39
343
原创 FPGA之旅设计99例之第六例-----动态数码管
这是FPGA之旅的第六个实例设计啦,驱动动态数码管,也是非常重要且基础的硬件电路。在数码管上,可以显示的字符有0-9和A-F,通过数码管,就可以将内部的相关信息直接显示出来,在学习初期使用的比较多,在课设中,一般利用数码管做数字时钟的比较多。其他例如可以显示DS18B20的温度数值和MPU6050传感器的ID值等等。.........
2022-08-31 19:05:22
1950
1
原创 QT批量修改文件名
在很多时候,需要批量修改文件名,少则几百个,多则几千个,一个个修改肯定是不可能的,所以特地开发了一个工具,可以批量修改文件夹下的所有文件。需要完整工程的 可以关注微信公众号FPGA之旅回复Qt批量修改文件名Demo获取。需要定制的可以私聊(公众号中)。工具如下图所示。通过点击打开文件夹,获取文件夹路径,获取文件夹路径后,点击浏览文件,即可看到,所选择的文件夹下的所有文件。然后可以通过编辑前缀和连接符,以及后缀,选择模式。即可预览修改后的文件名,点击执行后,即可修改。模块一共有五种。0:正常情况。
2022-08-23 11:12:11
1389
原创 FPGA之旅设计99例之第五例-----IIC通信
这是FPGA之旅设计的第五例啦!今天给大家带来的是IIC通信,IIC协议应用非常广泛,例如与MPU6050进行通信,配置OV5640摄像头、驱动OLED屏幕等等,都需要使用到IIC协议,所以掌握它是非常必要的,废话不多说,接着往下看。文末获取完整代码。IIC协议分为主机和从机,所有的请求都是由主机发出,从机进行响应,从机是没有办法对主机进行读或写的。IIC协议共有两根线,数据线SDA和时钟线SCL,两根线就可以完成所以的通信请求,简直是太给力了。...
2022-08-19 22:16:48
1504
4
原创 FPGA之旅设计99例之第四例-----多byte串口通信
这是FPGA之旅的第四个设计实例了,在上一例中,也就是第三例,串口通信,实现了单byte的传输。也就是每次只能传输一个btye的数据。在实际使用过程中,需要发送多byte的数据为一包数据,里面包含各种信息,例如最常见的包头和包尾。本例将在第三例的基础上,实现多byte的接收实例,以满足具体的需求。......
2022-08-15 21:25:39
1461
原创 FPGA之旅设计99例之第三例-----UART串口通信
这是FPGA之旅的第三个设计实例了,通过串口协议,就可以和电脑上的串口调试助手进行通信啦。串口一般用来输出程序中的一些信息,用来调试,也可以用来进行信息交互。在stm32中是可以通过串口下载程序的,是不是很nice。本例将实现一个基本的串口模块。感兴趣的话,欢迎关注微信公众号FPGA之旅。......
2022-08-14 16:09:00
1183
3
原创 FPGA之旅设计99例之第二例-----按键
这是FPGA之旅的第二个设计实例了,按键在项目中的作用是非常大的,使用的很频繁,本例将带大家设计一个实用的按键模块。
2022-08-12 16:01:08
1456
原创 FPGA之旅设计99例之第一例-----LED灯
作为我们这个系列的第一个实例,当然是要越简单越好啦,软件里面有打印hello world,硬件里面有点灯,就从点灯开始,开启这个系列吧。欢迎关注微信公众号FPGA之旅。
2022-08-11 20:59:14
1486
原创 STM32驱动MPU6050基于IIC协议
MPU6050是一款六轴陀螺仪,可以通过IIC协议输出三个方向上的加速度和角速度,在平衡车和飞控中较为常见。一般情况下,模块有用的引脚只有四个(其它的不常用),即VCC,GND,SDA和SCL。操作它的第一步,即编写IIC协议。......
2022-08-09 12:33:59
3539
3
原创 STM32-遥感数据处理
在上篇文章中,以及知道如何采集遥感数据了,可是采集到的数据是0-4096范围内的,实际上,下边界不为0,上边界也不为4096。为了方便后续的处理,本文将采集到的遥感数据归一到0-100范围内。
2022-08-02 22:16:06
612
原创 stm32 RT-Thread移植lvgl
在stm32上移植lvgl,上篇文章中已经讲解过了,今天教大家如何在rtthread中使用lvgl。
2022-07-21 08:05:59
3801
原创 STM32移植LVGL8.2
移植了大半天,终于成功在stm32平台上移植了lvgl8.2,真是累。lvgl作为最近较为受欢迎的一款嵌入式GUI开源库,功能非常强大,于是我选择了它。在移植的过程中,踩到了许多坑,在这里分享出来,避免重复踩坑,浪费时间。先来看一下移植效果,手机拍的不是很清晰,勉强可以看到效果。完整工程会在微信公众号FPGA之旅给出。在微信公众号中回复STM32移植LVGL获取下载链接。如果移植失败的话,方便大家对比。...
2022-07-19 22:05:25
6256
9
原创 STM32读取双轴遥感的数据值
在按键控制方面,双轴按键遥感远比按键要方便,而且使用非常简单。它一共包括三个数据引脚,分别是X轴的模拟输入,Y轴的模拟输入和按键输入,另外还有一个GND和VCC。这里VCC是一个参考电压,可以接5V,也可以接3.3V。如果接的是5V的话,那么X轴的模拟输入电压就为0-5V。......
2022-07-14 21:30:36
1557
3
原创 STM32实现NRF24L01通信
在各个无线通信模块中,由于NRF24L01价格便宜,而且体积小,以及不需要外接天线,传输距离约为10-20米,深受大家的喜爱。在遥控汽车,四轴飞行器中较为常见,在这里给大家分享其具体的使用。由于这里的SPI的速率不能太高,所以这里就采用软件的方式来实现这个传输过程(使用硬件的话,可以将分频设置大一点),这样就可以任意选择适合的引脚了。其中delay()是个空函数,可以加点延时,也可以不加。Cn :命令Data: 写入的数据size : 数据的大小代码的实现过程,是和上图一一对应起来的,就作详细的说明
2022-07-11 09:54:53
2595
原创 RT-thread创建线程并且启动
创建线程有两种方式,根据是否由rt分配内存,分为静态创建线程和动态创建线程。默认是静态分配线程,如果需要使用动态创建线程的话,则需要开启宏定义RT_USING_HEAP,并设置heap相关函数。thread : 线程句柄name :线程名字parameter :线程入口函数stack_start: 线程栈起始地址stack_size : 线程栈的大小priority: 线程的优先级tick: 线程的时间片大小三. 动态创建线程调用这个函数,会返回线程句柄。在使用这个函数的时候,需要
2022-07-08 14:28:28
894
SDRAM_SIM.zip
2020-11-28
gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.xz
2020-05-14
spring festival couplet.py
2020-05-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅