- 博客(39)
- 资源 (3)
- 收藏
- 关注
原创 【波形发生器(附源码)】基于DAC+DMA+UART的幅值、频率可调的正弦波、方波、三角波发生器
1.设计要求1.输出方波、三角波、正弦波三种波形2.各种波形幅值、频率在一定范围内可调3.串口控制波形数据4.基于stm32f103芯片
2021-05-16 15:02:16 6899 31
原创 【附源码】基于stm32的pwm调速自动避障红外遥控小车
main.c#include "led.h"#include "delay.h"#include "key.h"#include "sys.h"#include "usart.h"#include "timer.h"#include "MOTOR.h"#include "remote.h" int main(void) { u8 key; delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_Pri
2020-08-28 21:23:35 1316 5
原创 Python3.8安装CPU版本Pytorch(实用安装教程)
网上的教程大多要安装Anaconda(开源的Python包管理器)、CUDA(用于GPU加速)等一系列idle,其实对于初学者实现基本功能不建议安装这些。 开发环境:pip已安装、python3.81.上Pytorch官网 、https://pytorch.org/点击Get Start按如图所示配置(注意选择自己的操作系统)2.复制”Run this Command" 打开命令窗口3.验证安装...
2020-08-07 19:09:56 14236 2
原创 【FPGA学习笔记】实用模型以及方法总结
一种采集信号上升沿的方法reg a_0;reg a_1;always @(posedge clk) begin a_0 <= a; a_1 <= a_0; endassign pos_a = (~a_1) & a_0;
2020-07-31 19:31:23 1114
原创 【STM32F1/F4学习笔记】Embededer们的成长之路
总结了学习STM32F1和F4单片机的技巧,很多是多STM32官方参考手册的白话文翻译,将一些常用的开发所用的信息记录于此,结合自己在开发过程中一些灵感,也有遇到的坑,和大家一起共勉。不得不说STM32是一款功能强大的MCU,浩如烟海的知识点注定不可能面面俱到,它又是我的嵌入式启蒙老师,对我有重要意义。
2020-07-30 21:03:33 3773
原创 【920信号与系统笔记】第四章 连续时间系统的频域分析
描述了系统对各个频率的复正弦信号的幅度和相位的影响(信号通过线性系统前后频率不变)1.注意和信号的频谱(频谱密度函数)区分开来,一个描述系统,一个描述信号。1.时域求解响应的问题通过傅里叶级数或者傅里叶变换转换成频域问题。2.频率特性曲线包括幅频特性曲线和相频特性曲线。3.物理可实现的系统的相频特性曲线都是负的。2.再频域求解系统对各个正弦分量的响应。避开了微分方程的求解和卷积积分的运算。只能求解系统的稳态响应或者零状态响应。微分方程两边同时求傅里叶变换。h(t)傅里叶反变换。
2023-07-25 21:10:25 474
原创 【FPGA基础】基于PWM脉宽调制的呼吸灯设计(Vivado)
1.开发环境软件:Vivado2019.1硬件:Zynq7010仿真:Vivado Simulator2.预备知识众所周知,灯的亮度和加在其两端的电压有关。电压越高,亮度越亮,反之越暗。于是,设计一个呼吸灯就变得很简单了。让IO的输出电平由低到高,再有高到底有规律的变化,就能达到呼吸效果。现在问题来了,IO的输出电平只有0和3.3V的区别,那么如何让其输出0-3.3V之间的任意电压呢?这就需要用到PWM脉宽调制计数。通俗来讲,就是通过控制一个PWM周期内高电平和低电平的时间来控制其电压。比
2022-01-25 20:05:47 4778 1
原创 【ZYNQ-7000】从简易流水灯看FPGA开发的一般流程
【前言】前不久刚刚放寒假,被万恶的期末考试折磨的半死。为了奖励自己,买了新玩具----ZYNQ7010开发板。不得不说,板子小巧精致,布线很符合我的审美,哈哈哈。写篇文章复习一下基于vivado的FPGA的一般开发流程吧。【开发环境】Vivado 2019.1ZYNQXC7Z010【开发流程】1.新建工程打开Vivado,Create Project进入新建工程向导后next,编辑工程名称和工程目录注意这里的工程保存的目录越短越好,因为Vivado不支持长目录选择RTL设计,意味
2022-01-19 23:31:18 1554 2
原创 【送给她的圣诞礼物】尝试用turtle画圣诞树
尝试用turtle画圣诞树前言开发环境步骤一:加载bgm所念皆星河步骤二:窗口界面初始化步骤三:turtle初始化步骤四:画树的外轮廓步骤五:画雪花步骤六:画花朵步骤七:画五角星前言今天就是平安夜,明天就是圣诞节了,先祝大家节日快乐。网上有很多版本的圣诞树,内卷的很严重,当然我也不想和他们卷,我只想画属于我和她的。废话不多说,上效果: 只想画属于我和她的圣诞树 开发环境Pyt
2021-12-24 22:34:26 2343
原创 【Python Qt】DIY串口调试上位机---记录第一个QT小项目
1.效果图废话不多说,先上一个效果图:2.功能介绍自适应窗口大小(你要学会QT designer的Layout布局)点击搜索串口,端口下拉框显示可用的端口波特率可以下拉选择,提供了三种常用的波特率,115200,38400,9600支持状态显示:连接成功/未找到串口接收区实时接收(需要用到python多线程),这里我写了自动换行功能发送区可以实时发送和清除点击清空缓存可以清空接收区的内容最后一点,也是我做这个上位机的主要原因,市面上的串口调试助手太丑了,白色背景而且很多功能繁杂且无用
2021-10-28 16:53:47 1948 2
原创 解决python程序打包后出现“unable to open/read ui device“的问题
使用pyinstaller打包程序后,打开exe发现如下报错:可能性1:没有把对应的.ui文件放到dist目录下可能性2:动态加载.ui文件的路径是相对路径,改成绝对路径即可比如下面的代码:file = QFile("venv\Qt\salary.ui")#D:/python/venv/Qt/salary.ui...
2021-10-10 22:04:21 3714 2
原创 【2021电设】PID参数整定原理 + 调试经验分享
【写在前面】2021年全国大学生电子设计竞赛又因为疫情推迟了,让人欲哭无泪。暑假集训期间做了三个控制类的模拟题,其中平衡小车和球形小车都用到了PID控制算法,调试过程中遇到了很多奇奇怪怪的问题。不得不说,PID对于不了解它的人就是这样残酷,而对熟练掌握的人则是一把利器,对于我来说,也不能说已经能够熟练运用,只是略窥其中奥妙,现在把血与泪过程中得出的经验总结如下。...
2021-09-18 20:57:30 4109 2
原创 【Linux学习笔记5】系统日常运维命令总结
1.查看本机当前的网卡信息与网络状态znj@znj-virtual-machine:~$ ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.117.128 netmask 255.255.255.0 broadcast 192.168.117.255 inet6 fe80::4ea7:5bee:5291:98cd prefixlen 64 s
2021-09-17 20:30:24 392
原创 【Linux学习笔记4】目录文件操作命令总结:一切皆是文件!
本文按按顺序介绍以下命令:命令英文全称作用cdchange directory切换目录lslist files列出目录及文件名pwdprint work directory显示目前的目录mkdirmake directory创建一个新的目录4.mkdir4.1语法与参数选择4.2操作实例...
2021-08-28 22:54:15 764
原创 【Linux学习笔记3】Linux文件基本属性(附操作实例)
【前言】Linux是一个典型的多用户系统,为了安全起见,对同一个文件来说,不同的用户有不同的权限。在学习文件管理命令之前,首先要搞明白Linux 文件基本属性。以前总是搞不明白ll和ls命令有啥区别,后来发现自己有多憨批。【操作实例】在桌面目录下输入ls命令:![图1](https://img-blog.csdnimg.cn/dafb1aaec98d41a8945e1d30bbae1166.png)在桌面目录下输入ls -l命令:在桌面目录下输入ll命令:不难发现三个命令的作用:ls命
2021-08-28 22:23:19 144
原创 【Linux纠错】ls-l和ll原来不是同一个命令!
【前言】在学习Linux文件基本属性时,一直很好奇,ls-l和ll到底是不是同一个命令,网上大部分帖子明明白白的清一色写了ll是ls-l的别称,我直接流汗黄豆。下面亲手实操验证。【操作实例】在桌面目录下输入ls命令:![图1](https://img-blog.csdnimg.cn/dafb1aaec98d41a8945e1d30bbae1166.png)在桌面目录下输入ls -l命令:在桌面目录下输入ll命令:不难发现三个命令的作用:ls命令列出了该目录下的文件ls -l命令则列出
2021-08-25 21:23:42 765
原创 【Linux学习笔记1】CentOS-Linux系统启动过程详解
Linux系统启动过程详解【前言】Step1 加载BIOSStep2 BIOS 上电自检(POST)Step3 读取MBRStep4 执行Boot LoaderStep5 加载Linux内核Step6 运行systemd(Init)进程Step7 用户登录【前言】理解Linux操作系统的启动过程具有非常重要的意义。首先,这是学习Linux系统的第一步,是之后学习的基石,无论之后学习Linux运维还是开发都需要了解其次,万物归一。可以从Linux的启动过程窥见一般os启动的过程。本文参考了《Li
2021-08-20 20:29:50 376
原创 【Linux学习笔记2】Vim文本编辑器的使用
1.前言在Linux操作系统中,文本编辑器主要用来修改配置文件,一款好的文本编辑器能够大大提高工作效率。热门的Linux操作系统都会安装一款文本编辑器,名叫vi。没错!超级好用vim文本编辑器就是它的升级版。2.下载安装根据Linux系统的版本有不同的安装方式,下面给出乌帮托和红帽系统的安装方式:系统安装方式ubuntusudo apt-get install vim-gtkred hatyum -y install vim*3.三种模式3.1命令模式控制光
2021-08-14 19:41:14 130
原创 【踩坑记录】MSP-EXP430G2553 LaunchPad
1.前言废话因为最近在准备八月份的电设国赛,所以开始接触德州的单片机。之前学习的单片机主要是st的,资料多而且入门快。正式开始入坑之前就已经知道msp430资料很少,倒也不是很害怕,因为之前有过32位单片机和8位单片机的开发经验,然而上板过程一言难尽。2.资料准备MSP430的资料相较于stm32少了很多,靠谱的建议从TI官网下载用户手册进行学习。MSP430G2官方资料下载进去之后发现资料冗杂,主要用到的就一下三个:1.用户指南(长达644页的史上最全中文指南),告诉你每个寄存器怎么配2.
2021-05-19 21:17:14 2294 2
原创 【保姆级教程】手把手教你上传本地工程到Github仓库
注意点:1.执行过程中不要随意刷新github2.步骤一右击想要上传的工程文件夹,选择 Git Bash Here如果没有则需要去官网安装git 安装步骤不再赘述步骤二在github中创建一个仓库,我这里命名为DIgital-Clock步骤三执行命令git init步骤四复制仓库的地址步骤五将此地址粘贴至git clone后面,执行命令步骤六...
2021-04-15 16:55:30 115
原创 【C语言】stm32中对volatile修饰的变量的深入理解
stm32很多外设都是用结构体封装寄存器,偏移地址由高到底依次排列,来看下面一段对NVIC的封装typedef struct{ __IO uint32_t ISER[8]; /*!< Offset: 0x000 Interrupt Set Enable Register */ uint32_t RESERVED0[24]; __IO uint3
2021-04-10 13:46:19 1629
原创 STM32控制BYJ48步进电机(串口控制驱动代码)
MOTOR.C#include "motor.h"#include "delay.h"////////////////////////////////////////////////////////////////////////////////// //电机驱动代码 //Author:znj//修改日期:2021/3/2//版本:V1.0 //////////////////////////////////////////////////////////////
2021-03-05 20:43:15 1054
原创 树莓派通过vnc远程登陆遇到的坑
1.在树莓派命令行中启用VNC服务2.树莓派和电脑连同一个热点(不能是校园网之类的公网)3.树莓派命令行输入获取树莓派的ip,注意大写!hostname -I4.打开vnc viewer,输入ip5.成功连接后输入用户名密码默认用户名密码:piraspberry...
2021-03-01 17:43:20 1083
转载 解决【在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend】的问题
linux下载官方软件安装包时由于没有镜像速度很慢,如果意外退出下载,第二次进入下载的时候缓存会被锁住,以下三行命令完美解锁。sudo rm /var/lib/dpkg/lock-frontendsudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock...
2020-12-13 20:22:42 11519 14
原创 用numpy理清imread函数第二个入口参数的含义
import numpy as npimport cv2'''IMREAD_ANYCOLOR = 4 保持3通道,8位深度IMREAD_ANYDEPTH = 2 返回图像的8位深度不变,不包含通道值IMREAD_COLOR = 1 总是返回一个彩色图,保持3通道,8位深度IMREAD_GRAYSCALE = 0 图像是灰色的,不包含通道值,8位深度IMREAD_LOAD_GDAL = 8 保持3通道,8位深度IMREAD_UNCHANGED = -1 保持3通道,8位深度'''im
2020-10-24 15:50:30 163 1
原创 【Linux学习笔记0】入门Linux(学习经验总结+预备知识+基本概念辨析)
先按键盘【ctrl+alt +t】弹出终端,那么你会看到终端上的提示当前目录为【~】这个就是当前在的目录,这个称为家目录。【cd /】切换到根目录,其中【/】表示根目录【cd】切换到家目录【cd …】切换到上一级目录【ls】列出当前根下的目录【pwd】显示当前目录【cd doc】进入当前根目录下的子目录doc【cd -】进入上次所在目录...
2020-10-07 22:19:08 231
原创 【Python】sobel卷积滤波器实现图像边缘检测
sobel卷积滤波器实现图像边缘检测有关卷积filter索贝尔卷积核需要注意的几点Python实现效果图有关卷积filter索贝尔卷积核需要注意的几点Python实现效果图
2020-08-29 15:08:16 3668
原创 【Node MCU-ESP8266】基于Arduino的开发
初识ArduinoArduino抛开了传统硬件开发的复杂操作,不需要了解硬件的内部结构和寄存器设置,也不需要过多的电子知识和编程知识,只需要了解各个引脚和函数的作用,就可以开发出各种出色的项目。Arduino语言目前最新的Arduino核心库采用C和C++混合编程。通常所说的Arduino语言是指Arduino核心库提供的各种应用程序的的API集合。这些API是对更底层的单片机支持库进行二次封装形成的。程序结构void setup(){//这里的代码只会运行一次,一般用来初始化IO等操
2020-08-26 21:50:47 487
原创 variable和tensor的区别
import torchfrom torch.autograd import Variabletensor = torch.FloatTensor([[1,2],[3,4]])variable = Variable(tensor, requires_grad = True)t_out = torch.mean(tensor*tensor) # 各个元素分别相乘,不是矩阵乘法v_out = torch.mean(variable*variable)'''v_out = 1/4sum(var*v
2020-08-22 14:07:35 544
原创 深入理解CNN卷积神经网络各层的意义
卷积神经网络的一般架构Convolution–卷积层Pooling–池化层Fully connected–全连接层池化层【作用】:缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性(可以理解为抗干扰性能)【分类】:Max Pooling:最大池化Average Pooling:平均池化最大池化(效率高)【处理】:以上图为例,将输入分为四个区域,取出每个区域的最大值,组成新的矩阵【理解】:可以把输入的矩阵看作是某些特征的集合,数字大意味着过滤器提取了某些特定的特征,池化就是
2020-08-21 15:44:47 1829
原创 python-matplotlib 图像处理
1.显示图片import matplotlib.pyplot as pltimport matplotlib.image as mpimgimport numpy as nppicture = mpimg.imread('znj.jpg') # 读取和代码处于同一目录下的图片plt.imshow(picture) # 显示图片plt.axis('on') # 显示坐标轴plt.show() #因为idle是pycharm所以多一行显示命令效果图:2.显示RGB某个通道首先要明白ar
2020-08-20 13:04:38 489
原创 【FPGA基础】四位二进制--格雷码转换器(vivado)
【设计要求】设计一个4位的二进制格雷码转换电路编写代码并进行仿真【格雷码】格雷码是任意两个相邻的代码只有一位二进制数不同的编码,它与奇偶校验码同属可靠性编码。【设计思路】从对应的n位二进制码中直接得到n位格雷码,需要先对n位二进制从右到左,以0—n-1编号。如果二进制码的第i位和第i+1位相同则第i位格雷码为0,反之则为1.(0<= i <= n-1)【BCD_TRANS.v】timescale 1ns / 1ps////////////////////////////////
2020-07-28 14:43:38 7139
原创 【Machine Learning】---Implement cost functions in Python
2020年的暑假,忙里偷闲买了本西瓜书,照着小破站上的machine learning的教程学了个框架。这张图让我明白了机器学习在人工智能的地位,以及其下辖的分支学科。怎么说呢,这是一门入门门槛比较低的学科,有一定的高数现代基础就能看得懂大多数算法,但是动手自己写代码,把抽象的模型用代码具体化真的非常难。想要写代价函数必须了解一下几个概念:线性回归训练集假设函数线性回归: 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表
2020-07-27 21:13:33 187
一种基于STM32F407的OLED菜单界面设计思路
2023-03-24
智能门禁系统.zip
2020-08-10
digital_clock.rar
2020-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人