- 博客(72)
- 资源 (1)
- 问答 (3)
- 收藏
- 关注
原创 [C51]RAM开销及堆栈大小,keil工具
那么问题来了,如果程序比较大,设置的变量很多,那么可用于堆栈的内存是不是变得很小,答案是肯定的,但是可以通过将变量存放在外部RAM,避免内部RAM被过度使用,可以通过data xdata关键字来自己分配,也可以将keil配置成默认使用外部RAM(前提是具有外部RAM)可以看到堆栈往后移动了一位,但是对C语言熟悉的会发现一个问题,就是b不是动态局部变量吗,那么根据C语言的标准,b应该是创建在堆栈中,随着函数的结束释放掉,但是这里的b占用的是固定的地址,这个先不写了,有兴趣的可以看看下面的文章。
2024-01-24 16:42:48
2126
原创 封装选择,接地,分布电感,分布电容
另外,该电阻也往往只用在对信号完整性要求比较高的信号线上,例如读写线等,而对于一般的地址线和数据线,由于芯片设计总有一个稳定时间和保持时间,所以即使有点振铃,只要真正发生读写的时刻已经在振铃以后,就无甚大影响。一般来说,封装大的器件会比较便宜,小封装的器件因为加工进度要高一点,有可能会贵一点,然后封装大的电容耐压值会比封装小的同容量电容耐压值高,这些都是要根据你实际的需要来选择的,另外,小封装的元器件对贴装要求会高一点,比如 SMT 机器的精度。接地是一个极其重要的问题,有时关系到设计的成败。
2023-04-24 21:02:10
715
原创 VSCode PIO 更改地址
关闭VSCode状态下,进入C:用户\自己用户名,剪切.platfromio文件夹到要移动的地方。变量名为PLATFORMIO_CORE_DIR。变量值为新的地址/.platfromio。
2023-04-10 15:52:23
466
原创 51单片机大小端模式
https://mp.weixin.qq.com/s?__biz=MzA3OTM2NzUxOA==&mid=203004332&idx=8&sn=1a8f8aa11848b4d5f4810d4670eb1e38&chksm=1659a59d212e2c8be102a4dd727f31a0df186b8227d0ee00557d942f0c80ac97b337085de57f&scene=27
2023-04-05 13:42:01
321
原创 C++字符串相加出错:invalid operands of types ‘const char [759]‘ and ‘const char [15]‘ to binary ‘operator+‘
但“”括起来的字符串被当成是字符串类型的,而非string类型,而字符串类型与C语言一样是不允许相加的,因此需要强制将其中一个字符串转为String类型。在C语言中字符串是不能直接相加的,在C++中,字符串是一个String类,允许相加。
2023-03-17 17:28:50
1794
原创 PIO中选ESP32的board类型
如果你不知道选什么的时,你就找一个有你芯片关键词的board,然后去搜索一下看一下他用的芯片是不是跟你的一样,如果一样就可以选了。比如,如果你用的是esp32-WROOM-32,那么你的board可以选Hornbill-ESP32-Dev。当你要用某一个esp32的芯片或者模组的时候,搜索发现没有这个board,那怎么选?如果你用的模组或芯片和他一样你是可以选的。首先PIO里面的board,如。
2023-03-14 21:46:28
912
原创 TFT_eSPI使用
项目名字自己定义,开发板(board)选择ESP32 Pico Kit(Espressif)使用的平台选Arduino。在includePath 和 path 的末尾中添加 TFT_eSPI 的路径。选择自己的路径并点击finish,等待创建完成(可能很久)开发环境:VS Code + PlatformIO。c_cpp_properties.json 文件。将解压的文件夹复制到工程的lib目录下。屏驱动是:ST7789_DRIVER。在工程中添加TFT_eSPI库。开发板:ESP32-S3。
2023-02-21 23:02:58
2272
3
原创 collect2: error: ld returned 1 exit status(解决方案大总结)
(9条消息) collect2: error: ld returned 1 exit status(解决方案大总结)_负壹的博客-优快云博客_collect2: 错误:ld 返回 1
2023-02-11 20:46:44
7470
原创 keil查看语句运行时间
设置晶振频率为实际晶振频率选择软件调试编译后开始调试在需要测的函数delay和下一句左边点击设置断点,电机复位与运行在左上角view设置里面调出逻辑分析仪logic analyzer点击全速运行,记录开始时间点击全速运行记录结束时间delay的运行时间为结束时间减去开始时间。
2022-11-02 12:19:48
1115
2
原创 【51】【keil】创建第一个工程(模板)
保存在刚才创建的文件夹C51_Project->Project下面,并取任意一个名字,然后保存。这是一个51单片机的工程模板,芯片型号:STC89C52(更具实际更改)。Project文件夹用来存放keil5编译软件生成的工程文件。readme.txt用来存放工程的介绍及相关说明。改名为main.c (文件拓展名也要修改)。找到Project下的工程文件,双击打开即可。选中main.c,点击添加,然后删除页面。User用来存放用户自己编写的程序文件。该文件夹用来存放引用库。在User中新建文本文档。
2022-10-21 17:11:25
1997
2
原创 [kali]切换字符界面和图形界面
Ctrl +Alt +F1 进入字符界面。Ctrl +Alt +F7 进入图形界面。Ctrl +Alt +F3 进入字符界面。Ctrl +Alt +F1 进入图形界面。
2022-10-07 23:11:52
3026
原创 [kali]文件类型查看
存储器设备的文件,比如硬盘,在linux中就是一个b类型的文件夹。包括文本文件,压缩文件,十六进制文件,二进制文件等。串行端口的接口设备,如键盘,鼠标,显示屏。查看当前文件夹下的文件的详细信息。每一行的第一个字符就是文件类型。l 为链接文件(快捷方式)d 为目录文件(文件夹)输入命令 ls -l。
2022-10-07 21:35:14
1297
原创 【stm32】stm32f103c8t6购买建议(避雷)
事情得从今年电赛说起,当时购买物资的时候在一家店买了很多东西,然后为了方便报销,单片机也在同一家店买了,但是店里只有一种40多块钱的单片机,由于想到是学校付的钱就不计较了,然后就买了两个。做作品和比赛期间都是用的贵的那个,比赛结束后,不知道什么原因,我换了一下便宜的单片机上去,发现作品中有一个功能(通过DMA传输的双ADC多通道规则同步采集数据)不正常,无法显示波形,不知道是ADC出错还是DMA出错,没有深入探究。2、用来做检测类的,比如ADC采集什么的,反正对硬件要求高的建议买贵的。
2022-10-06 16:57:30
3578
1
原创 S波与P波的定义(光波电矢量)(菲涅耳公式)
入射光线、反射光线、折射光线是共面的,那么如果波的振动方向在该面上,那么就是P波,如果振动方向与该面垂直就是S波。如图,光线平面是X-Z平面,那么振动方向在这个面上的波就是P波。如果是其他方向的光波,那么可以分解成这两个方向的波的叠加。菲涅耳公式是解释反射与折射现象的。Y轴方向的波是S波。
2022-09-18 23:08:43
13104
原创 光纤的结构
多模光纤:50或62.5um。纤芯直径:单模光纤:8-10um。光纤由纤芯、包层、涂覆层组成。涂覆层直径:250um。包层直径:125um。
2022-09-18 21:29:46
1117
原创 【arduino】时间相关函数
返回值:单片机上电或复位后到现在的时间,单位为ms,50天后复位为0,重新计算。返回值:单片机上电或复位后到现在的时间,单位为us。num:延时时间,单位微秒,最大值16383。延时函数:delayMicroseconds(num)读取单片机启动后运行的时间,单位毫秒。读取单片机启动后运行的时间,单位微秒。num:延时时间:单位毫秒。延时函数:delay(num)系统时间:micros()系统时间:milis()
2022-09-18 14:01:08
1847
原创 【arduino】串口通信
Serial功能:查看串口是否可用函数原型:Serial返回值: 1:串口可用(或串口准备就绪)0:串口不可用(或串口未准备就绪)
2022-09-18 13:49:27
8495
原创 【arduino】外部中断
LOW 低电平触发。RISING 上升沿触发。CHANGE 电平变化触发。FALLING 下降沿触发。0:中断0(IN0),对应IO口为2。1:中断1(IN1),对应IO口为3。Funtion_name:中断服务函数名字,可以任意取。与普通函数定义一样,但函数名字要和中断配置时设置的一样。mode:中断触发方式,可取以下值。INx:中断通道,取0或者1。
2022-09-17 20:25:37
780
原创 【arduino】I/O端口操作
注意:不管设置为输入模式,还是输出模式的端口都可以使用该函数读取IO口的电平状态,但是IO口在输入模式时为高阻态,输出模式时为低阻态,高阻态情况下,微弱电流信号也可以检测到,低阻态则不可以,故对于传感器的电平检测应设置输入模式。注意:设置analogWrite后,该端口会一直输出频率一定的方波信号,直到下一次操作该端口,即对该端口操作会打断PWM输出。value :检测的脉冲类型,HIGH:检测高电平信号持续时间,LOW:检测低电平信号持续时间。OUTPUT:输出模式,默认输出低电平,最大电流40mA。
2022-09-17 17:22:08
8860
原创 【数组历遍】628-三个数的最大乘积
求大值/小值的方案,排序后取的运算量大,需要多次历遍数组,故直接采用一次历遍找出即可(注意:相邻两个值可能相等)2 排序后三个最大值中,第一大值为正 && 第二大值*第三大值
2022-09-10 22:23:28
170
原创 香农定理
链路带宽B:在有些地方,带宽是信号频率的最大值减去频率最小值,但在此处,带宽表示单位时间通过链路的数据量。计算时一般使用经验公式,信道带宽大约位载波信号频率的1/10.意义:香农定理指出在有限带宽、有噪声的信道中,传输速率具有极限值,无论使用何种编码方式都无法突破这个极限值。同时香农定理还给出传输速率最大值与带宽和信噪比的关系。C:最大信息传输速率,单位bps(比特/秒)。B:链路带宽,单位Hz。S:信号功率,单位w。N:噪声功率,单位w。
2022-09-08 16:46:53
1673
原创 【Arduino】修改舵机角度范围
当我们使用arduino UNO/mega2560来驱动舵机的时候,由于有的舵机是0-180度范围的,有的舵机是0-270度的舵机等等,我们利用0-180的程序来驱动0-270的舵机总觉得很奇怪,很难受,虽然经过计算是可以驱动的,但是对强迫症患者非常不友好,那怎么修改呢。将文件里面所有的180改成270(这里只是列举一部分),或者你也可以写一个宏定义,方便以后修改。找到对应单片机的文件夹,UNO和mega2560都是avr单片机。右键arduino的快捷方式,点击属性,打开目录。...
2022-08-28 11:54:22
1989
3
原创 【arduino】sprintf对浮点型数据出错
https://www.cnblogs.com/gaotaozhaolei/p/4289489.html
2022-08-26 16:12:22
726
原创 【stm32】【调试技巧】死机问题解决方法
上面是一堆中断服务函数,无论哪一个触发都会执行该句死循环,无法找出到底是哪一个中断出了问题。前几天发现系统莫名其妙的就死机,后来通过查看资料并仿真找出了问题。仿真器用的是野火的fireDAP Lite。5 死机后停止仿真,程序会停在死机的地方。该处B .是死循环,即程序在这里出不去了。添加中断服务函数,清除中断标志位即可。发现了问题,然后用仿真器做了硬件仿真。1 连接单片机,图中是演示并未供电。6 每一个中断服务函数加一个死循环。7 重新仿真查出卡死的地方。3 编译下载,开始仿真。8 发现是串口的问题。
2022-08-22 21:37:29
2943
3
SH1106驱动芯片的OLED显示屏在arduino mega2560上的简单显示,包含字符串,整数小数,中文的显示的保姆级教程
2022-05-17
stm32定时器读数出错
2023-06-13
kali缺失固件文件,连接上wifi但无法上网
2022-05-04
py双重for循环嵌套if
2022-03-23
Python列表求差分出错
2022-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人