- 博客(29)
- 收藏
- 关注
原创 模拟电路、数字电路
模拟电路是种电路,是用来产生、变换、传输、处理模拟信号的电路(反正就是跟模拟信号相关的电路),其中模拟信号是指自然界中的一种真实存在的描述量,比如交流电的电压大小,温度的大小,这种量是随时间连续变化的提到另一种信号就是数字信号,这种信号是离散的,只能取特定的值,在时间和大小上都是离散变化的,比如墙上挂钟的指的时间,以1s为单位变化一次产生、存储、变化、处理、传输数字信号的电路。
2025-07-15 16:01:30
216
原创 STM内部通信、I2C、USART、
(1)定义:USART (Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步接收/发送器;(1)控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号。(4)近距离通信(如果增加变压芯片RS232,RS485提高电压保证稳定性,可以达到20m、1km)(4)只有一个主设备(单片机),可以挂几百个从设备。(2)近距离通信(板级通信)
2025-07-06 17:55:17
957
原创 STM32历史、命名、Flash、工作频率
STM是一家半导体公式,专门做芯片的,STM32是指32位的微处理器,其中芯片的架构是ARM结构的,ARM是一家专门卖芯片设计版权的公式ARM系列有ARM4,5,6,7,知道出到ARM11之后,ARM12就变成了Cortex系列了,其中意法半导体(STM公式)抢占先机,在其他公司仍认为ARM9才是重点开发项目时,意法公式先开发Cortex-3,4系列,成为行业霸主地位。
2025-06-25 19:21:34
1399
原创 32、GPIO、UART、SFR
而地址线实际是只有26~30位,并且要了解到stm32并没有理论上的全地址内存空间(2的地址线数量次方*寄存器宽度),只是开辟了部分空间用来装代码,另一部分空间装数据等等,(2)作用:直接操作硬件外设的核心寄存器,开发者通过读写SFR来控制硬件的读取状态,工作模式,触发操作。(2)意味着:寄存器是32位的(寄存器宽度),数据总线是32位的,ALU能支持32位的计算。(1)定义:特殊功能寄存器(Special Function Register)(2)作用:通过两根线Tx(发送端),Rx(接受端)实现。
2025-06-23 09:30:07
477
原创 bool变量、if else、switch case、
return 0;直接报错:未定义标识符 "d"if语句块里定义的int d = 1;是局部变量,它的作用域只在if的大括号{}内。
2025-06-14 11:02:20
558
原创 C语言学习第14天
对比以下代码(static使局部变量变为静态局部变量,从栈空间到静态空间,寿命从函数结束到整个程序结束)这个类型数据呢,修改*p指针本身的内容(p的值),就需要提供指针变量所在的地址,考虑到**p。,因为内存冗余问题(上层空间要专门开辟一块返回空间,而且子函数子空间也有这一块空间)意思是返回a数组第11个值,并不是返回a数组这个连续空间。如果我们想让子函数返回一个连续的数组空间,这样写。所以不能直接返回一个空间,而是考虑空间的重要特点,注意,申请完后,使用过该空间后,,并完成相应的值的运算,最后。
2025-06-14 09:30:59
451
原创 指针初始化、NULL本质
这样的初始化,意思是指针指向的地址里的内容是NULL空,指针指向的地址可能是非法的。首先必须知道,指针初始化就是给指针一个指向的地址,所以指针初始化右边一定是一个。表示指针指向的地址为0x00,至于该地址里的值是多少,未知,(1)int *p=NULL初始化。会不会发生段错误,一般会;(2)*p=NULL初始化。常见指针的初始化有这些。
2025-06-12 10:29:29
376
原创 extern的用法、声明与定义、static作用
extern是声明该变量或函数是已经在其他文件中定义好了的,编译器无需检查(1)定义只能出现一次,声明可以出现多次(2)定义创建了对象并且分配了内存,声明没有分配内存只是告知编译器该对象已经分配好内存了、该对象名字已经被占用了定义示例int a=10;char b[10];return a+b;声明示例。
2025-06-10 10:57:53
361
原创 C语言学习第十二天
/ p[3]说明是个数组,左边加*说明是数组指针,(*p[3])右边加括号说明函数。申请了以malloc给的首地址的100个字节空间,以1字节方式读取。注意:如果在函数内申请了malloc()空间后,在函数结束后,该空间并不会自动释放掉。而函数指针数组也是这样概念,将不同的函数的地址放在一个数组中连续的空间,通过指针访问。,并让指针匹配这个函数的数据读取格式,通过直接调用指针的方式调用函数。fun(10,2);栈空间:运行时,函数内部变量,函数结束就消失。所以在函数结尾时,必须要加上free(p);
2025-06-08 17:48:44
848
原创 C语言学习第十一天
cpu一次可以读取的内存大小(假如是4个字节),对于小于4字节的数据,存放时会以4字节存放,多余的空间就放在哪里。在内存中,会大致划分成几段线性的空间,专门容纳各种的功能的数据。按理说,在内存应该是占用 1字节+4字节。为了让一个总线周期内能更快速的读取数据。代码段和只读数据段都属于只读空间。不能使用指针修改,会报段错误。
2025-06-05 20:49:45
323
原创 C语言学习第十天
一维数组,就是int a[3];然后二维数组,例如 char a[3][4],当要访问a[1][2]时可以想象为:下面图但实际上,内存空间是线性的,不是这种二维分布二维数组实际应该是这样的:a[3][4]的数组,是划成了3个空间,每个空间4个单位的数组而a[1][2]就是指,访问第二个空间的第三个格子处。
2025-06-05 16:41:43
1003
原创 C语言学习第九天
在内存空间中直接申请一块连续区域写法如下int a[m]相当于在表示申请了m个连续的每个大小为int类型的内存空间数组a的 m 个元素 (a[0]a[1]、...、a[m-1]) 在内存中是连续存储的,地址依次递增注意:m只在数组定义的时候起作用,当你写也是合法的。
2025-06-03 20:21:07
627
原创 C语言学习第八天
p[0], p[1] ,p[2] ,p[3] ...p[m],当p[m]==NULL时,说明二维指针空间结束标志。先看*p 可以知道这是一个指针,大小是(根据系统位数,64位系统8字节)8字节,读取属性还未知。两个字符串可以是不相邻的,但是我们可以通过指针p[0],p[1]使他们通过在指针的地址空间内。再看向**p,可以知道是二级指针,存放的是8字节的数据(*p的地址长度也是8字节)用的比较多的是逻辑操作符==!最后看int **p 可以知道*p的读取方式是以int 4字节读取数据。
2025-05-28 19:00:01
317
原创 C语言学习第五天
应用场景:可以取一个范围内的数,n%m ——>[0,m-1]的值,得到一个m进制的一个个位,或是循环结构的下标。是不一样的,按照或的特点:一个为真全为真的逻辑,有一个顺序直接跳过的过程,注意区分 位操作 中的 “~”运算符。
2025-05-18 19:47:10
302
原创 C语言学习第四天
当编译器默认的定义内存分配不符合实际的空间资源时struct结构体,是元素间的和,相当于将不同数据类型和在一起形成的自定义类型union共用体,共用起始地址一段内存,技巧型代码enum一个一个列举,一次把常量都自定义好的集合过程,方便人阅读管理代码typedef数据类型的别名,是上面的int char哪些数据类型的别称。
2025-05-18 17:05:14
691
原创 c语言学习第三天
2.另一种情况,通常把头文件都放在一个文件夹内,与.c文件不在同一个目录下(Test)安装编译——链接的顺序,应该先把两个.c文件都先编译了,再去链接最后生成一个exe文件。2.另一种情况,定义了fun的具体函数,但是不是在main中,而是在另一个.c文件中。原材料不够 一般是没有这个函数,没有定义这个函数。1.解决方法是直接在这个main.c文件中去写fun函数的定义就好。1.这可能与include 规则有关。表示在当前目录里找不到该文件。链接collect2工具报错。这个时候可以使用代码。
2025-05-16 17:31:53
292
原创 c语言学习第二天
是 GNU 项目开发的编译器套件,支持多种编程语言(C、C++、Fortran 等)。最初为类 Unix 系统(如 Linux)设计,但可通过移植在多种平台上运行。在 Linux/macOS 上是默认的编译器(通过命令。当超出char的范围后,会以截断8位补码的形式保留为值。,是一个将 GCC 和 GNU 工具链(如。)移植到 Windows 的开源项目。2.了解了gcc和mingw的区别。1. char型默认是有符号的。3.学些gcc的一些指令操作。
2025-05-14 17:59:41
268
原创 c语言学习第一天
以及终端的运行文件找不到文件的问题解决:因为文件不在当前目录,在下一个目录, 所以要用cd E:\C_language\pragram\Test 中的。1.学习了安装visual studio code代码编辑器以及mingw编译器,前者只是写代码的,后者是将代码翻译成机器语言让计算机明白才能运行的。的环境变量,解决了为什么path文件中怎么以列表显示所有环境变量,只要在最前面加上C:\Windows\System32代码就行。4.学习了怎么运行c文件,必须先变成一个exe文件才行,而且得用以下指令。
2025-05-13 21:21:59
212
原创 numpy.savetext()存储csv文件并使用 pandas读取文件时报错
fnameXheader=‘’footer=‘’delimiter是以其为标识来分隔 csv则使用**‘,’**进行分隔header是写一个列名encoding是编码方式。
2023-05-15 20:54:08
385
1
原创 使用python进行正太分布的统计并绘制出直方图
代码中random.normal()中的三个参数,ex是正太分布的平均值,de是正太分布的均方差,n是生成数据的数目,代码中是生成100000个以平均值1000,均方差为20的正太分布的数据。其中,np.round(y)是用来设置四舍五入后小数点位置的,默认小数点为0位,np.round(y,2)则是保留两位小数。这样就得到了,正太分布对应的点了,横轴标是值,纵坐标是这些值出现的次数。Counter(y)是返回y中的值,以及对应值出现的次数。dict()是用来数据转换为字典类型数据的方法。
2023-05-06 09:07:28
1095
原创 Python中用sorted()对字典key或value排序
iterable是可遍历序列,key为按照某种函数的方法进行排序规则,reverse是按照排序大小排序,默认False是从小到大(True是从大到小)按照value排序(只是把item里的0改成1)
2023-05-01 23:52:44
344
原创 Python中np.random.normal的使用
我们知道正太分布中,平均数加正负1,2,3倍标准偏差的概率,分别68.3%,95.5%,99.7%np.random.normal(n,σ,size)主要参数分别是平均数,均方差,数组长度。y是以10位中心(平均数),均方差为1,有10000个数据的array数组。功能是生成长度为size的以n为中心,σ为均方差的正太分布的一组数据。全部代码:(个人学习记录用)可以看到是符合规律的。
2023-05-01 17:57:01
2638
原创 Python关于matplotlib.pyplot和numpy的使用:绘制散点图及进行线性拟合
plt.plot(x,y,'b--')中,x,y是要输入的横纵坐标,要以列表类型输入;'b--'中"b"是颜色,"--"是形状。plt.scatter(x,y,c='b')中,x,y是要输入的横纵坐标,要以列表类型输入;使用plt.plot()绘制拟合线,使用plt.scatter()绘制散点图。deg=1表示拟合次数为1,numpy.polyfit()返回的值是列表。x是横坐标对应照射量率,y和z是纵坐标分别对应计数率和净计数率。多次绘制可在同一张图进行绘制。根据降幂顺序给出系数值。
2023-04-07 09:16:02
2312
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅