自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 结构数组的简单使用

/这条语句定义了一个有30个元素的结构数组,每个元素的类型为STUDENT。对结构数组的访问与普通数组相同,例如要访问第一个学生的学号,用stu[0].ID,访问第二个学生的成绩,用stu[1].score。例1:输入n个平面坐标系中的点(横坐标,纵坐标),将这些点按照距离原点从近到远的顺序排序并输出。结构数组的定义方式与普通数组的定义方式相同。当输入为0 0 时,测试结束,不需要计算输出0加0的结果。顾名思义,结构数组,当然就是数组元素为结构类型的数组。定义好了结构数组以后,如何对结构数组进行访问呢?

2025-03-18 12:22:53 118

原创 计算圆矩形梯形面积

【代码】计算圆矩形梯形面积。

2025-03-18 12:22:38 74

原创 多组测试数据的输入

当输入为0 0 时,测试结束,不需要计算输出0加0的结果。对于每一组整数a和b,输出它们的和。每组包含两个整数a和b。输入包含多组测试数据。

2025-03-18 12:22:13 111

原创 类访问私有成员

(1)通过公共函数为私有成员赋值。(2)利用指针访问私有数据成员。(3)利用函数访问私有数据成员。(4)利用引用访问私有数据成员。

2025-03-18 12:21:47 221

原创 c语言函数声明

【代码】c语言函数声明。

2025-03-18 12:21:32 75

原创 c++释放空间[动态分配】

其中,T 是任意类型名,p 是类型为 T* 的指针,N 代表“元素个数”,可以是任何值为正整数的表达式,表达式中可以包含变量、函数调用等。第二条 delete 语句会导致程序出错,因为 p 所指向的空间已经释放,p 不再是指向动态分配的内存空间的指针了。这样的语句会动态分配出一片大小为 sizeof(T) 字节的内存空间,并且将该内存空间的起始地址赋值给 p。同样地,要求被释放的指针 p 必须是指向动态分配的内存空间的指针,否则会出错。其中,T 是任意类型名,p 是类型为 T* 的指针。

2025-03-11 11:26:32 235

原创 C++如何保留2,3位小数输出

由程序员而不是一系列固定的规则控制内存持续时间,因此内存块可在一个函数中创建,而在另一个函数中释放。在编译时就已经知道了静态存储时期存储类变量所需的内存数量,存储在这一部分的数据在整个程序运行期间都可用。由于这点,动态内存分配所用的内存部分可能变成碎片状,也就是说,在活动的内存块之间散布着未使用的字节片。然而,一个自动变量在程序进入包含该变量定义的代码块时产生,在退出这一代码块时终止。这意味着在内存中,新变量在创建时按顺序加入,在消亡时按相反顺序移除。另一个是动态分配的内存的。我们来看一个理想模型。

2025-03-11 11:23:09 413

原创 vue基础作业实验十

这段代码是一个基于 Vue.js 的静态页面,功能包括商品品牌的添加、删除和搜索。

2024-12-20 19:13:21 1048

原创 U-Boot的编译与烧写

在U-Boot源码目录下生成u-boot.bin和u-boot.stm32镜像文件,需要将u-boot.stm32烧写到开发板的eMMC中。每个人的压缩包不一样,所以u-boot-stm32mp-2020.01-gdb8d2374-v1.0.tar.bz2可以替换的,解压后是。“u-boot-stm32mp-2020.01-r0”就是 ST 官方 uboot 源码包。编译多了一些文件,重点是 u-boot.bin 和 u-boot.stm32 这两个文件。修改前面创建的 tf-a.tsv 文件。

2024-12-20 18:14:26 772

原创 W: 无法下载 https://packages.microsoft.com/repos/vscode/dists/stable/InRelease 无法解析域名

意思是在下载 Visual Studio Code(VSCode)软件包时遇到的问题提示无法解析域名,我一看原来是上回把虚拟机改成桥接模式没改回来,然后运行就可以了(主要是因为网络连接)然后改了一下,改成net模式。

2024-12-20 18:12:53 351

原创 web基础 HTML 表单

它允许网页与用户进行交互,用户可以通过表单输入数据,提交数据到服务器进行处理。一个典型的表单由多个表单控件组成,比如文本框、单选按钮、复选框、提交按钮等。GET:将表单数据附加到 URL 后面,这样提交的数据可以通过 URL 看到(适用于少量数据和不敏感信息)。POST:将表单数据放在 HTTP 请求体中提交,数据不会显示在 URL 中,适用于提交大量或敏感数据。:定义表单控件的标签,并通过 for 属性与对应的控件(如 input)关联。:用于输入密码,输入的内容会被隐藏(显示为星号或圆点)。

2024-11-25 14:41:08 630

原创 使用 DOM 操作替代 document.write()

h1.style.color = ‘green’: 使用 JavaScript 设置 h1元素的 CSS 样式,将文字颜色改为绿色。document.body.appendChild(h1): 将创建的 h1 元素添加到页面的 body 元素内部。createTitle(text, color): 这是一个函数,用于创建并返回一个带有指定文本和颜色的 h1元素。document.createElement(‘h1’): 创建一个新的 HTML 元素。

2024-11-25 14:40:29 377

原创 JavaScript基础 document.write()方法

覆盖页面内容:如果 document.write() 在页面加载完成后被调用,它将覆盖整个页面的内容。这是因为 document.write() 会将新内容直接写入文档流中,可能导致页面上的其它内容丢失。document.write() 在现代开发中使用较少。

2024-11-24 12:59:07 358

原创 实验7 JavaScript编程基础7.1密码验证

(4) 函数show()内使用变量name接收文本框内字符,向div内输出形如“xx,你好……textObj.value获取文本框内容(input标记value属性值)。如果是,则在页面上输出“欢迎来到这里学习JavaScript。如果不是,则弹出对话框,显示“密码错误,前方危险。(2) 新建文件yanzheng.html,使用prompt() alert()函数及相关知识完成以下要求。(2) 页面:一个文本框,一个按钮,一个div#result。(3) 文本框用于输入姓名,点击按钮调用函数show()

2024-11-24 12:46:43 526

原创 编译和烧录TF-A(二)使用USB烧写TF-A到STM32MP157开发板的EMMC,运行TF-A

真正要烧写的 tf-a-stm32mp157d-atk-trusted.stm32,将 Ubuntu 里面的 tf-a-stm32mp157d-atk-trusted.stm32 发送到 images 目录下。只关注 trusted 目录下的文件,此目录下就保存了 MP1 所有型号的 TF-A 固件,包括正点原子开发板所使用的 tf-a-stm32mp157d-atk-trusted.stm32。tf-a-stm32mp157d-atk-trusted.stm32 是我们编译出来的 TF-A。

2024-11-18 15:48:27 854

原创 编译和烧录 TF-A(一)

固件(Firmware)是一种特殊的软件,通常被嵌入到硬件设备中,用于控制和管理该设备的基本操作和功能。通过与其他引导程序(如 U-Boot)配合使用,TF-A 使得基于 ARM 的设备能够安全、高效地启动操作系统,且提供硬件安全支持。4.解压完成以后就会得到一个名为“stm32wrapper4dbg-master”的文件夹,进入到此文件夹里面,然后编译并安装。2.解压正点原子TF-A源码 tf-a-stm32mp-2.2.r1-g463d4d8-v1.0.tar.bz2。

2024-11-18 15:23:15 637

原创 实验3独立按键实验

下载编程,关闭电源,然后打开,程序编译成功。修改芯片型号,串口,加载hex文件。key1对应p3.1。key2对应p3.0。key3对应p3.2。key4对应p3.3。

2024-11-15 22:33:44 258

原创 打开和使用 Makefile.sdk

文件的方法非常简单,可以通过文本编辑器打开它,也可以通过命令行工具进行构建操作。通常是在使用某些 SDK(软件开发工具包)时,生成的一个文件。中定义的规则进行构建。如果你遇到任何构建问题,确保检查文件中的编译规则以及你的环境设置。是一个构建文件,在 SDK 项目中,它包含了构建、清理和部署等规则。,或者直接在 VS Code 中通过 File > Open 打开该文件。,首先需要理解它的基本用途和如何在正确的环境中进行操作。,只想查看它的内容,可以在命令行中使用。文件中的规则来进行编译和构建。

2024-11-11 17:17:40 378

原创 Ubuntu 下 ST 官方软件安装(四) STM32CubeProgrammer 安装

1.新建一个名为“STM32CubeProgrammer”的文件夹,然后STM32CubeMX 安装包 en.stm32cubeprog_v2-5-0.zip。解压出来的文件一个都不要删除,防止安装的时候出错,在终端里面执行 SetupSTM32CubeProgrammer-2.5.0.linux。以后就可以直接在 Ubuntu 下通过 STM32CubeProgrammer 来烧写系统。参考文章Ubuntu 下 ST 官方软件安装(一) Java 环境安装。7.不要修改安装路径,采用默认路径即可。

2024-11-08 20:08:04 447

原创 Proteus 8 Professiona 实验2控制流水灯实验

本次实验增加了总线,总线分支,网络标号,熟练运用实验元器件的搜索和摆放,双击复制上一步连线操作,Ctrl画斜线,右键旋转以及单击右键放置和取消使用工具Proteus 8 Professional跑Keil uVision4的文件参考。

2024-11-08 19:47:54 2324

原创 Ubuntu 下 ST 官方软件安装(三)STM32CubeIDE 安装

STM32CubeIDE 安装参考文章Ubuntu 下 ST 官方软件安装(二) STM32CubeMX 安装参考文章ST官方开发工具(二) STM32CubeIDE安装。

2024-11-08 19:46:50 479

原创 Command ‘​gcc‘ not found, did you mean: command ‘cgcc‘ from deb sparse解决办法

说明我系统中确实安装了多个版本的 gcc,包括 gcc-7 和一些交叉编译器。这表明 gcc 是存在的,但可能在命令行中无法直接使用 gcc 命令。运行 which gcc 查看 gcc 命令的路径是否正确。如果没有输出,说明 gcc 的路径未被添加到环境变量中。看到的错误信息表示系统上没有安装 gcc(GNU 编译器集合)。这表明GCC 安装是正确的。我先确认是否安装:运行 dpkg -l | grep gcc 查看是否有安装记录。安装完成后,就可以使用 gcc 命令来编译你的 C 程序了。

2024-11-06 19:50:38 481

原创 Ubuntu 下 ST 官方软件安装(二) STM32CubeMX 安装

中间出了错误原来是没切入cd en.stm32cubemx_v6-0-1,所以没找到解压后的SetupSTM32CubeMX-6.0.1.linux。2.STM32CubeMX 安装包 en.stm32cubemx_v6-0-1.zip 发送到此文件夹下(直接拉进去)参考文章Ubuntu 下 ST 官方软件安装(一) Java 环境安装。参考文章ST官方开发工具(一) STM32CubeMX 安装。2.打开搜索条,输入“STM32CubeMX”查找相应的文件。根据提示一步步安装下去,安装默认路径安装。

2024-11-06 19:48:46 619

原创 gcc -E 输出的预处理代码有什么用途

这个简单的例子展示了如何使用gcc -E来预处理 C 代码,从而查看在编译阶段之前的代码状态。这对理解宏的替换和头文件的包含非常有帮助。

2024-11-05 13:22:16 570

原创 Ubuntu 下 ST 官方软件安装(一) Java 环境安装

在 Ubuntu 下安装这三个软件也是需要 JAVA 运行环境的,Ubuntu 可能会默认安装了OpenJDK 环境,但是 STM32CubeProgrammer 是用 Oracle 的 JDK 编写的,所以需要先卸载掉默认的 OpeJDK。6.重启电脑,输入“java -version”查看 java 安装是否成功,安装成功的话就会打印出 java 环境的版本号。5.在 vim 中,按 Esc 键,输入 :wq,然后按 Enter 键保存并退出。然后按 o 键,按i进入插入模式,开始在新的一行输入内容。

2024-11-04 22:27:03 1138

原创 ST官方开发工具(三) STM32CubeProgrammer 安装

1.解压开发板光盘中的 STM32CubeProgrammer 安装压缩包,然后双击解压出来的“SetupSTM32CubeProgrammer-2.5.0.exe”STM32CubeProgrammer 需要 JAVA 运行环境,确保已经安装好了 JAVA 运行环境。参考我的文章ST官方开发工具(一) STM32CubeMX 安装。4.选择路径,新建文件夹,我建议放在D盘,然后点击Save。7.中途会安装驱动,按照提示选择安装即可;8.安装完成,点击 Next;

2024-11-04 22:15:57 1129 1

原创 ST官方开发工具(二) STM32CubeIDE安装

参考我发的文章ST官方开发工具(一),STM32CubeIDE 需要 JAVA 运行环境,确保已经安装好了 JAVA 运行环境。将下载好的 STM32CubeIDE 安装包解压到非中文路径下,如果路径中有中文,安装的时候可能会有错误。3.注意,安装路径不能有中文,否则会导致 STM32CubeIDE 软件无法安装,即使成功安装以。GDB 服务器组件,默认选择 J-Link 和 ST-Link 的组件,选择默认即可。后,也会导致无法正常创建和保存工程,无法正常进行编译。7.快捷方式如图,安装完成。

2024-11-04 10:05:14 537

原创 ST官方开发工具(一) STM32CubeMX 安装

这是 Java 8 的一个更新版本,属于 Java SE(Standard Edition)环境。该版本的 HotSpot JVM 是 64 位的,支持混合模式运行。7.如果你安装了 32 位的 Java,而某些软件要求 64 位版本,就会在启动时弹出警告提示。大家可以到 Java 官 网。在安装 STM32CbeMX 和 STM32CubeIDE 前我们要先安装 Java 的环境,Java 运行环境版。安装完 Java 运行环境之后,为了检测是否正常安装,我们可以打开 Windows 的 cmd 命。

2024-11-03 22:58:35 1026

原创 嵌入式Linux驱动开发环境搭建- 最新MobaXterm 软件安装和使用

可以看出,MobaXterm 软件支持很多种协议,比如 SSH、Telnet、Rsh、Xdmcp、RDP、VNC、FTP、SFTP、Serial 等等,我们现在就讲解一下如何建立 Serial 连接,也就是串口连接,因为我们使用MobaXterm的主要目的就是作为串口终端使用。毫无疑问,我们肯定选择免费的 Home Edition 版,点击下方的。MobaXterm 的主要作用是为用户提供一个集成的终端仿真环境,支持多种网络协议。一共有两个版本,左侧为免费的 Home Edition 版本,右侧为付费的。

2024-11-02 13:06:13 676

原创 嵌入式Linux驱动开发环境搭建-CH340 串口驱动安装

如果看到这样的条目,说明驱动已经成功安装。我们一般在 Windwos 下通过串口来调试程序,或者使用串口作为终端,STM32MP157 开发。CH340是一款常用的USB转串口转换芯片,通常用于将USB接口连接到TTL电平的串行设备。开始CH340 串口驱动安装,(我是从原子那里找到的安装)双击 SETUP.EXE,打开如图。再次,右键单击“USB-SERIAL CH340”设备,选择“属性”。在“驱动程序”选项卡中,可以查看驱动程序的详细信息和版本。右键单击“开始”按钮,选择“设备管理器”。

2024-11-02 12:24:44 1746 2

原创 linux开发必备知识(一)CH340相关以及驱动

CH340是一款常用的USB转串口转换芯片,通常用于将USB接口连接到TTL电平的串行设备。

2024-11-02 11:48:48 1559

原创 Proteus 8 Professional跑Keil uVision4的文件

Proteus 8 Professional跑Keil uVision4的文件

2024-10-31 16:30:08 549

原创 Ubuntu下载交叉编译器,有如何解决问题:未找到命令

中间遇到了这个问题试了几个都没什么用,因为检测编译器都在,然后换了个命令来实行一个简单的c语言提示:unbuntu编写一个简单的c语言1.首先可以创建一个XXX文件夹命令:mkdir XXX2.进入创建好的XXX文件夹:cd xxx (ps:返回上一层文件可以:cd /)3.创建一个c程序文件:touch XXX.c4.用vim编辑器对其进行编辑:vim XXX.c5.编辑完可以通过快捷键shift+zz 保存并推出编辑器。

2024-10-28 23:56:14 1223

原创 makefile简单复习及应用(一)

Makefile 可以通过 make -j 选项来支持多线程并发操作,这样可以显著缩短编译时间,尤其是在大型项目中,多个文件可以同时编译。通过跟踪文件的时间戳,Makefile 只会编译那些自上次编译以来已修改的源文件。这种增量编译机制有效地减少了不必要的编译时间,提高了效率。一旦编写好 Makefile,通常不需要频繁修改,只要项目结构没有变化,开发者可以通过简单的 make 命令来完成整个项目的构建,极大地提高了使用的便利性。

2024-10-27 23:56:31 880

原创 期末复习web 弹性盒子 Flex与网格Grid基础知识总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-10-26 13:58:31 1094

原创 物联网控制技术第三章 单极性D/A转换器

比例因子为1意味着输出电压与输入数字代码之间存在直接的线性关系,比例因子为1表示DAC的输出电压能够完整地反映输入的数字信号,而不需要进行任何缩放或调整。其中,数字输入值是指输入DAC电路的二进制数据,最大数字值则由DAC的分辨率确定,参考电压为DAC电路提供的基准电压,通常为外部提供给DAC的电压源。输入范围:8位DAC的输入是一个8位二进制数,可以表示从0(00000000)到255(11111111)之间的256个不同的数字。3,比例计算:根据输入的数字值与最大值的比例,计算相应的输出电压。

2024-10-26 12:12:57 828

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除