- 博客(24)
- 资源 (8)
- 收藏
- 关注
原创 C语言关键字之volatile
volatile是 C 和 C++ 编程语言中的一个关键字,用于修饰变量。当一个变量被声明为volatile时,它会告诉编译器这个变量的值可能会在程序执行过程中被意外改变,因此编译器不应该对这个变量进行某些优化操作。
2024-08-27 11:12:56
427
原创 头文件中尖括号<>和双引号““使用场景
当包含自定义的头文件或需要避免与系统头文件冲突时,应使用双引号 ""。例如: #include , #include , #include 等。使用 "" 包围的头文件,编译器会先在当前源文件所在的目录中查找,如果找不到再在系统预定义的路径中查找。当您需要包含您自己编写或项目中提供的自定义头文件时,应该使用双引号 "" 来包围头文件名。使用 包围的头文件,编译器会在系统预定义的头文件搜索路径中查找。
2024-08-26 14:30:30
316
原创 浅谈uint8_t
uint8_t是 C 语言中的一种无符号整数数据类型,它占用 8 个比特位,表示的范围是 0 到 255。是一个无符号整数,它只能表示非负的整数值,不能表示负数。占用 8 个比特位,因此它能表示的最小值是 0,最大值是 255 (2^8 - 1)。是 C99 标准中定义的一种标准整数类型,用于表示 8 位无符号整数。它在头文件中被定义。由于的位宽比 C 语言中的基本整数类型和更小,在某些情况下使用 uint8_t 可以带来更好的性能,特别是在嵌入式系统中。
2024-08-26 14:13:06
568
原创 Verilog 和 C 区别
Verilog 是硬件描述语言,在编译下载到 FPGA 之后, FPGA 会生成电路,所以 Verilog 全部是并行处理与运行的; C 语言是软件语言,编译下载到单片机/CPU 之后,还是软件指令,而不会根据你的代码生成相应的硬件电路,而单片机/CPU 处理软件指令需要取址、译码、执行, 是串行执行的。 Verilog 和 C 的区别也是 FPGA 和单片机/CPU 的区别, 由于 FPGA 全部并行处理, 所以处理速度非常快,这个是 FPGA 的最大优势,...
2022-03-19 15:50:54
1173
原创 Verilog基本语法之阻塞赋值和非阻塞赋值
1.阻塞赋值(Blocking) 阻塞赋值,顾名思义即在一个 always 块中,后面的语句会受到前语句的影响,具体来说就是在同一个always 中,一条阻塞赋值语句如果没有执行结束,那么该语句后面的语句就不能被执行,即被“阻塞”。也就是说 always 块内的语句是一种顺序关系,这里和 C 语言很类似。 符号“=”用于阻塞的赋值(如:b = a;)阻塞赋值“=”在 begin 和 end 之间的语句是顺序执行,属于串行语句。 在时序逻辑下使用阻塞赋值为例来...
2022-03-19 15:41:05
15525
3
原创 放大器的增益带宽积
放大器的增益带宽积(指定为GBWP,GBW,GBP或GB)是放大器带宽和带宽的增益的乘积,是用来简单衡量放大器的性能的一个参数。在频率足够大的时候,增益带宽积是一个常数。 假设运算放大器的增益带宽积为1 MHz,它意味着当频率为1 Mhz时,器件的增益下降到单位增益。即此时A=1。同时说明这个放大器最高可以以1 MHz的频率工作而不至于使输入信号失真。由于增益与频率的乘积是确定的,因此当同一器件需要得到10倍增益时,它最高只能够以100 kHz的频率工作。 比...
2021-07-17 10:51:45
3355
1
原创 仿真测试平台文件(TestBench)(二)
2. 测试平台文件的结构 使用VHDL语言编写测试平台文件时,所有的基本VHDL语法都是适用的,但是测试平台文件与一般的项目设计存在一些区别。一个测试平台文件必须包括与所测试的元件(UUT)相对应的原件声明,以及输入到UUT的激励描述。一个测试平台文件的基本结构如例1:【例1】LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY test1 IS --测试平台文件的空实体(不需要定义端口)END test1;A...
2021-07-12 21:47:21
867
1
原创 仿真测试平台文件(TestBench)(一)
敏感膜片设计本次设计选用圆膜片作为敏感膜片,其关键尺寸为膜厚 t 和膜半径 a,一般来说,弹性物体属于三维的实体,当物体受到外力作用时,体内各点的应力、应变和位移都是(x,y,z)的函数,而当其几何形状的某些尺寸远大于另 一尺寸时,可把三维问题转化为二维平面问题来研究,对于圆形平面薄板问题就 是这种情况。当圆形平面薄板的厚度(t)远小于半径(r)时,采用极坐标来分析则能使求解大大简化,此时各...
2021-07-12 21:40:04
1737
1
原创 ISE14.7从程序设计到下载
11.1.3 ISE的界面和设计流程ISE的界面可以分为8个部分,包括标题栏、菜单栏、工具栏、源文件处理区、源文件管理区、编辑区、信息区以及状态栏。如图11.1所示。各部分的功能将在后面各节予以介绍。图11.1 ISE的界面使用ISE进行FPGA设计的流程大致可以分为3个步骤:① 设计输入与仿真设计输入(Design Entry)是指以HDL代码、原理图、波形图以及状态机的形式输入设计源文件,而设计仿真(Simulation)是指通过仿真工具对设计的整体模块或者局部模块进行仿真来检.
2021-06-01 10:04:21
9047
原创 Verilog基本语法之wire和reg
Verilog基本语法之wire和reg Verilog语法之多,初期学习我们只需要掌握常用的语法就OK了,今天谈谈数据类型:wire和reg ①wire:线型 ②reg:寄存器型...
2021-04-27 17:04:08
23801
2
原创 Visio安装
杂谈: 一般我们参加比赛、做实验,在写实验报告、说明书的时候,有时需要进行流程图,程序框图的绘制,使用word让人感觉心累,而Visio在这方面是非常专业的,也比较易上手。 安装: Step1 Step2 Step3...
2021-03-25 00:10:49
672
原创 Keil5安装教程(C51与MDK共存)
闲话: 近期重装了电脑系统,大学四年耗尽心血下载、破解的软件全部GG,看着桌面上空落落的,就想着再下载一些可能用到的吧!今天进行的是Keil5的安装,包含了MDK与C51,希望能对刚接触的有所帮助。 安装步骤: Step1:安装包的来源 硬件君(公众号),估计是大一的时候就关注了,对我下载一些软件起到了很大帮助,软件不多,但必属精品(小小的拍马屁一下),讲真,很良心。 下载后解压如图: S...
2020-06-05 18:43:26
10177
6
转载 Keil(MDK-ARM)的调试步骤
在暑假前进行实训的时候,我选的题目为简易示波器设计,在进行程序设计的时候,可能有时候编译无错,下载到板子上无法按程序设计正常工作,这时候就需要在线进行调试,但是开始使用的时候很迷,请教了学长,自己也查找了写资料,中油搞明白了,经过调试,最终实现了简易示波器的设计。下面介绍调试的步骤!1.编译+调试打开软件工程->编译->调试这里的编译建议使用Buil...
2019-07-20 17:40:56
12689
原创 #if 和 #ifdef使用
在写C的时候,在.h头文件中,我们会使用#ifdef ....<CODE>.... #endif,这样写是防止头文件被重复包含,导致的变量被多处声明或定义。 而在暑假前进行实训的时候,我选的题目为简易示波器设计,在进行程序设计的时候,发现有时候需要屏蔽很多行程序,很烦,于是在请教学长问题的过程中跟我讲了#if ...... #endif这么一个技巧超级...
2019-07-20 17:30:24
1037
原创 基于matlab设计的低通滤波器
基于matlab设计的滤波器低通滤波器%系统采样频率fs=1200%原始信号N=400;n=0:N-1;t=n/fs;fl=100fh=400y=sin(2*pi*fl*t)+sin(2*pi*fh*t);%显示原始信号subplot(321)plot(t,y)title('输入信号');xlabel('t/s');ylabel('幅度');%对...
2019-05-30 22:03:32
9743
4
原创 集成电路设计-电路网表写法
在集成电路设计中,采用 HSPICE 软件可以在直流到高于 100MHz 的微波频率范围内对电路作精确的仿真、分析和优化。在实际应用中,HSPICE 能提供关键性的电路模拟和设计方案,并且应用 HSPICE 进行电路模拟时,其电路规模仅取决于用户计算机的实际存储器容量。而我们需要对某个电路进行网表的撰写也可称为电路描述语句, 而这边博客目的在于介绍HSPICE 的一些主要描述...
2019-04-10 17:43:32
8675
2
原创 VMware下Ubuntu网络配置-NAT模式
近几天需要下载一个软件在linux系统下,所以呢,打开发现没有联网,第一次接触,就直接百度找解决方案,发现有三种联网方式,于是相比较之下,选择了一种简单的方式-NAT模式。 不过,也遇到了点麻烦,找的解决方案在我电脑设置后没反应,连续两个下午寻找无果,但是人怎么能被挫折打败,今天下午再次征战,可能是把上天给感动了,尝试用第一篇百度的结果去设置,结果非常succes...
2019-03-14 18:47:39
2577
原创 CRH、CRL、ODR和IDR的使用
STM32的每个I/O口都由7个寄存器控制:2个32位端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位复位寄存器BSRR;1个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR; 而我们最常用的有4个:CRL/CRH/IDR/ODR;所以一般情况下我们只要配置这四个is OK。而CRH和CRL作用是完全一样的,CRH用于控...
2019-01-20 18:27:28
3489
原创 浅谈APB1、APB2
在STM32初始化IO的时候,首先要初始化IO的时钟,这里面有两种时钟:APB1ENR、APB2ENR。两个从字面上看都是 Advanced Periphery Bus Enable,不同之处一个是1 ,一个是2。区别在哪里?IO初始化的应该根据需要开启哪个时钟? APB1外设时钟使能寄存器(RCC_APB1ENR) 低速APB使能,最大允许频率36MHz ...
2019-01-20 18:14:24
23506
2
原创 VDD、VCC、VEE、VSS的理解
一般在CPU芯片中,我们会发现存在有VCC、VDD、VEE、VSS以及VPP,不过,大多时候只知道VCC,也说不出个所以然来,Here to explain。一、解释VCC:C=circuit 表示电路的意思, 即接入电路的电压;VDD:D=device 表示器件的意思, 即器件内部的工作电压;VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压;...
2019-01-20 17:06:45
2089
原创 MCS-51单片机指令系统“读-改-写”方式指令
51 单片机有四个 8 位的并行接口。由于内部结构的特点,并行接口在输出 0、1 的时候,能力是不一样的。输出 0 的时候,能力较强,但输出 1 的时候,能力就很差了,而 P0 口,则要外接上拉电阻才能输1。 单片机从端口读入数据的通道有两个,一个是从锁存器引入,一个是从输出引脚处引入,分别叫做“读锁存器”和“读引脚”。单片机在进行端口输出时,经常要参考其上一次的...
2018-12-16 16:42:49
2319
转载 单片机之外部时钟与内部时钟
1、晶振 首先,单片机能正常工作的必要条件之一就是时钟电路,时钟是单片机的脉搏,是单片机的驱动源,单片机工作是在统一的时钟脉冲控制下一拍一拍进行工作的。这个脉冲由单片机控制器中的时序电路发出的。所以单片机就很需要晶振。 晶振,全称是石英晶体振荡器,是一种高精度和高稳定度的振荡器。通过一定的外接电路来,可以生成频率和峰值稳定的正弦波。而单片机在运行的时候,需要一个脉...
2018-12-15 20:33:53
40624
5
原创 PCB设计流程一原理图
我们知道,大多数软件都是英文版本,但目前大多数英文版本的软件都有被汉化,不过推荐大家还是使用英文版本,被汉化的版本或多或少会有一定缺陷,但有人可能也会说,英文版本的我看不懂啊,我想说,既然你是想学习,那肯定是要广泛的学习喽,在使用英文版本的过程中,你不仅学会了软件的使用,同样,也会培养你对英语的feeling,何乐而不为,其实好多时候我们都在潜移默化的get到新的knowledge、...
2018-11-04 19:49:44
4675
二输入与门电路网表-.sp文件
2019-04-10
二输入与非门电路网表-nand2.sp
2019-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人