自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QT与嵌入式——搭建串口

由于我需要不止一个串口来进行数据交互,所以简单的封装了一下下面是具体的调用方法ttyUSB0是自己的串口名,需要自己去查找出来一般可以通过下面指令来查找可以用的串口名词当然,如果需要对数据进行区分,也可以像我这样做大部分变量都被我定义成了成员变量(在类里作为全局变量使用)需要的可以自己找一下缺少头文件的可以直接根据类型和报错来添加头文件。

2024-11-20 23:44:01 684

原创 QT与嵌入式——获取网络实时时间

如果开发板没有自带RTC,那么我们用QT的获取本机实时时间获取到的应该是系统装载好的时候的时间,往后的时间开发板是不会记录的,所以本文介绍的方法,适用于没有RTC的开发板。如果获取成功返回的“success”的值为1;打开链接就可以看见返回了一个json数据包,包含了时间的数据,标准时间到现在的秒数,毫秒数,实时时间,中文编码的实时时间,周数等等...往上还有很多TCP,NTP的方式,个人感觉对我一个小白来说,介绍都不是很友好,如果是像我一样的小白,还是用别人做好的API接口方便。第三步:API的格式。

2024-11-19 19:10:14 1421

原创 C++——八股文

‌2024年C++笔试面试题‌涵盖了多个方面,包括基础知识、设计模式、进程通信、内存管理、多态实现等。以下是一些常见的面试题目及其解答:基础知识。

2024-11-18 20:00:51 785

原创 C++的泛型编程

C++ 的泛型编程主要通过模板(template)实现。模板允许编写能够处理多种数据类型的代码,而无需为每种数据类型编写单独的函数或类。这通过参数化类型来实现,编译器会在编译时根据实际使用的类型生成具体的代码。

2024-11-18 19:45:40 1044

原创 C++类(下)

抽象类是定义接口或规范的有力工具,通过包含纯虚函数,强制派生类实现某些方法,从而确保一致的行为。理解抽象类的用法和实现,对于编写高质量的面向对象代码至关重要。虚析构函数是确保在多态类层次结构中正确释放资源的关键。通过在基类中声明虚析构函数,可以确保派生类的析构函数和基类的析构函数都被正确调用,从而防止内存泄漏和资源未释放的问题。

2024-11-15 19:20:47 1284

原创 C++类(上)

浅拷贝:直接复制对象的成员变量,对于指针类型,只复制指针的值,新旧对象共享同一块内存。深拷贝:复制对象的成员变量,并为指针类型创建新的内存空间,新旧对象拥有独立的内存。在实际开发中,选择浅拷贝还是深拷贝取决于具体需求。对于包含动态分配内存的类,通常需要实现深拷贝以避免内存管理问题。友元机制的优缺点:可以提高代码效率,避免不必要的公共接口。可以实现某些特殊的功能,例如在不同的类之间共享数据。破坏了类的封装性,降低了代码的可维护性和可重用性。滥用友元会使代码难以理解和调试。

2024-11-14 23:37:18 1327 1

原创 C++基础

内联函数是一种提高程序性能的重要工具,通过消除函数调用的开销和提供更多的优化机会,可以显著提高代码的执行效率。然而,内联函数也有其限制和潜在的代码膨胀问题,因此需要在适当的场景下使用。简单理解:如果只是简单的理解的话,如果对于内联函数的定义还是很模糊的话,可以将内联函数看作函数的宏;C++ 结构体比 C 结构体更加强大和灵活,支持成员函数、访问控制、继承、构造函数和析构函数等特性。C 结构体只能包含数据成员,不支持上述高级特性。

2024-11-13 20:03:02 1248

原创 STM32——串口

串口呢,作为硬件调试的时候,是很有用的,我觉得搞嵌入式是经常和串口打交道的串口(Serial Port)是一种用于计算机和外部设备之间进行数据通信的接口。它通过串行通信方式传输数据,即一次只传输一个比特(位)。串口通信在早期的计算机系统中非常常见,用于连接键盘、鼠标、调制解调器、打印机等外部设备。常见的串口类型包括 RS-232、RS-485 和 RS-422。RS-232 是最常见的串口标准,广泛用于个人计算机和各种嵌入式系统中。

2024-11-07 23:48:33 2351

原创 两个有趣的小东西(qt和类型转换)

qt报错Qt:cannot open output file debug\XXX.exe: Permission deniedint存储为char

2024-11-06 23:37:28 518

原创 STM32——IIC详解

I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备(那些电平转化芯片),现在被广泛地使用在系统内多个集成电路(IC)间的通讯。I2C只有一跟数据总线 SDA(Serial Data Line),串行数据总线,只能一位一位的发送数据,属于串行通信,采用半双工通信。

2024-11-05 23:47:59 1308

原创 STM32——IIC

IIC通信协议:IIC通信协议,也称为I2C(Inter-Integrated Circuit),是一种串行、半双工总线,主要用于近距离、低速的芯片(如传感器、存储器、显示屏等)之间的通信。它由飞利浦(Philips)公司开发,用于简化PCB板上的连接和通信需求。I2C协议采用两根双向的信号线进行通信:串行数据线(SDA):用于传输数据的双向线路。串行时钟线(SCL):用于同步数据传输的时钟信号线。IIC是主从机制可以实现多主多从,stm32大部分使用单主机,多从机模式。

2024-11-04 23:06:46 1623 1

原创 STM32——PWM(含源代码)

pwm生成代码以及如何配置生成pwm所需的寄存器;还有如何从芯片手册知道如何配置PWM波形

2024-11-03 22:58:53 3782

原创 STM32——ADC

12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部 信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右 对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。

2024-11-02 21:00:45 1247

原创 stm32——GPIO开发

手把手教你配置GPIO;GPIO(General Purpose Input/Output)是一种通用的输入输出接口,广泛应用于微控制器和单板计算机(如树莓派、Arduino等)。GPIO可以配置为输入或输出,用于控制和读取各种外部设备,比如传感器、开关、LED灯等。ok,至此,配置寄存器以及GPIO输出高低电平便已完成,外接一个需要电平的led,我们拉高和拉低电平,便可以实现点灯与灭灯

2024-11-01 23:37:27 1187

原创 鸿蒙生态认识

为此,我不断优化应用功能和用户体验,利用市场调研了解用户需求,以此制定差异化的市场策略,提升我的应用在众多产品中的竞争力。结合我的实践经验,我在开发智能家居管理应用时,利用鸿蒙的跨设备功能,用户不仅可以通过手机操作设备,还可以在智能音箱上直接控制,形成了一种全新的用户体验。智慧城市:鸿蒙生态的应用可以扩展到智慧城市建设中,通过互联的设备收集和分析数据,提升城市管理的智能化水平,开发者可以在这一领域找到大量机会。好的,让我们更深入地探讨鸿蒙生态的发展机遇、面临的挑战,以及未来的潜力。

2024-11-01 22:47:34 485

原创 嵌入式——了解stm32

STM32标准库是STMicroelectronics提供的,用于简化与硬件的交互。它封装了对寄存器的直接操作,使开发更加高效和可读。选择寄存器开发还是标准库开发取决于项目需求、开发者的经验和对硬件的熟悉程度。在实际开发中,常常会结合使用这两种方式,以获得最佳的开发效率和控制能力。标准库对于初学者来说,远远比寄存器开发上手来的快,当然,随着开发的深入以及了解,学习寄存器开发是不可避免的;

2024-10-31 22:23:45 1470

原创 C语言——八股文(笔试面试题)——持续更新

位段(Bit Field):在C语言中,允许在一个整数类型的数据结构中定义若干个长度为任意比特位的字段。联合体(Union):允许多种数据类型的变量共用同一块内存区域。递归:函数直接或间接地调用自身的过程。回调:一个函数作为参数传递给另一个函数,并由后者在适当的时候调用前者。越界:访问超出数组或其他容器范围的元素。溢出:数值超过了其表示范围的最大值或最小值。直接使用变量名即可。不建议这样做,因为会导致链接错误。应该在某个.C文件中定义,在头文件中声明。

2024-10-30 22:37:27 2958

原创 C语言——思维导图

也算是把C语言全部复习完了,应该没有什么漏掉的东西。

2024-10-29 23:39:41 273

原创 C语言——LInux编程(下)

进程是操作系统中正在运行的一个程序的实例。它是一个独立的、动态的执行环境,拥有自己的内存空间、系统资源(如文件句柄、网络连接等)以及执行上下文(包括程序计数器、寄存器等)。

2024-10-28 23:10:41 954

原创 C语言——linux编程(上)

概念:操作系统是一款进行操作系统的意义在于它在计算机硬件和用户之间提供了一层抽象,使得用户和应用程序能够更高效、更安全地使用计算机资源。

2024-10-27 23:33:22 1156

原创 C语言——数组、指针、函数

在前面我们已经学习了数组、指针以及函数,看起来都没有难的地方,我自认为呢也掌握的比较好,直到我发现,这些东西可以打组合拳。

2024-10-26 22:28:26 1343

原创 C语言——回调函数

在学习了函数之后,我发现了一个比较难的函数——回调函数回调函数 (Callback Function) 指的是一种函数,它被作为参数传递给另一个函数,并在满足特定条件或事件发生后被调用执行。它允许你将一段代码延迟执行,或者在某个事件发生后执行。这在异步编程、事件处理和许多其他编程场景中非常有用。

2024-10-25 21:28:47 292

原创 C语言基础——函数

在C语言中,函数的声明和定义可以分开。函数声明通常放在头文件中,函数定义放在源文件中。// 函数声明// 函数定义", result);return 0;C语言函数的参数指的是在函数定义中声明的变量,用于向函数传递数据。这些变量在函数体内部被使用,以执行特定的操作。函数参数可以有不同的类型,例如整数、浮点数、字符、指针等等,甚至可以是结构体或数组。函数参数的个数可以是零个(无参函数)、一个或多个。

2024-10-24 22:39:44 1511

原创 C语言——网络编程(下)

UDP(User Datagram Protocol)是一种不可靠的传输层协议,用于在IP网络中传输数据包。

2024-10-23 21:54:18 1524

原创 C语言——网络编程(上)

除了TCP和IP,TCP/IP协议族还包含许多其他协议,例如:UDP(用户数据报协议)、ICMP(互联网控制报文协议)、ARP(地址解析协议)、DHCP(动态主机配置协议)等等,这些协议协同工作,才能实现互联网的正常运作。它在IP协议的基础上,提供面向连接、可靠、有序的数据传输服务。TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)都是网络传输层协议,但它们在可靠性、效率和应用场景方面存在显著差异。

2024-10-22 23:43:13 975

原创 C语言——进线程

3、线程。

2024-10-21 23:43:07 768

原创 C语言——文件IO

文件IO是指计算机系统之间的数据交换和存储操作,包括读取文件、写入文件、修改文件和删除文件等操作。文件IO是计算机系统中最常见的IO操作之一,它是指计算机系统之间的数据交换和存储操作。标准I/O是C语言提供的更高层的I/O操作接口,它构建在系统I/O之上,并提供缓冲区管理功能,简化了I/O操作,提高了编程效率。文件IO的原理是指计算机系统之间的数据交换和存储操作的过程。文件IO的实现是指计算机系统中实现文件IO操作的方式。文件IO的应用是指计算机系统中文件IO操作的场景。头文件中的函数,例如。

2024-10-20 20:56:33 1407

原创 C语言——套接字

Socket是一个编程接口是一种特殊的文件描述符(everything in Unix is a file)羊不仅限于TCP/IP协议面向连接(Transmission Control Protocol - TCP/IP)E连接(User Datagram Protocol -UDP和 Inter-network Packet Exchange - IPX)

2024-10-19 23:48:46 334

原创 C语言基础之指针

1、什么是指针2、指针的使用3、指针常量与常量指针C语言中的指针是一个变量,它存储另一个变量的内存地址。理解指针的关键在于它与内存地址的关系。你可以使用指针来直接访问和操作内存中的数据,这使得C语言能够进行底层操作,但也带来了更高的复杂性和潜在的风险。

2024-10-18 23:31:39 589

原创 数据类型——超出范围

我们知道,char类型是一个字节,占8位,那么当8位都是1是不是就是它可以存储的最大值呢?那真的就如我们预料一般,a打印的值为255?在上一期,我们知道了c语言的数据类型,也知道了数据类型各有大小,那么如果我存放的数据超过了定义的数据类型的大小,该变量会存放什么呢?所以我们存入1111 1111,那么最高位就是1,作为符号位,表示改数据为负,取反加一后,补码为1000 0001,所以打印-1。可以看到结果是-1,那为什么呢?这也就是为什么会区别有符号和无符号类型的原因。

2024-10-17 23:40:52 324

原创 C语言基础之数据类型

在上面的代码中arr1是一个整型数组,三个元素的值分别是1、2、3,占用的内存空间是12字节(3个整型变量各占4字节)。arr2是一个字符数组,三个元素的值分别是'1'、'2'、'3',占用的内存空间是3字节(3个字符变量各占1字节)。数组有下标的概念,下标从0开始,比如arr1[0]就是存放的1;arr2[2]就是存放的字符'3';二维数据与多维数组,大家可以把一维的数据想象成在x轴,二维数组就是在x与y轴分布;以此类推多维数组。

2024-10-16 23:07:01 1196

C语言-思维导图源文件

C语言-思维导图C语言思维导图 语言基础 数据类型:整数、浮点数、字符、布尔值、数组、结构体、枚举 变量:声明、初始化、赋值 表达式:算术运算、比较运算、逻辑运算、赋值运算 语句:声明语句、赋值语句、条件语句、循环语句、跳转语句 数据结构 数组:声明、初始化、访问、修改 结构体:声明、初始化、访问、修改 链表:声明、初始化、访问、修改 控制结构 条件语句:if语句、switch语句 循环语句:while语句、for语句、do-while语句 跳转语句:break语句、continue语句、return语句 函数 函数声明:函数名称、参数列表、返回类型 函数调用:函数名称、参数列表 函数返回值:return语句 输入输出 输入:scanf函数、gets函数 输出:printf函数、puts函数 文件操作 文件打开:fopen函数 文件读写:fread函数、fwrite函数 文件关闭:fclose函数 异常处理 try-catch语句:try块、catch块、finally块 异常类型:runtime error、logical error

2024-10-29

空空如也

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

TA关注的人

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