自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++面试常问题

1.c和c++区别2.C++三大特性3.静态多态和动态多态4.指针和引用的区别5、重载、重定义、重写6、new、malloc7、static的作用8、const的作用9、STL

2024-04-17 21:54:20 615 1

原创 stm32通信接口

USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发器USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。自带波特率发生器,最高达4.5Mbits/s。可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2。可选校验位(无校验/奇校验/偶校验。

2024-04-17 17:07:58 901 1

原创 stm32的PWM驱动LED呼吸灯代码流程展示

1、开启时钟,使用PA0引脚作为输出连接LED;2、GPIO初始化;3、配置时钟源;4、时基单元初始化;5、输出比较初始化;6、TIM使能;7、编写主函数。

2024-03-13 16:18:34 169 1

原创 stm32输出比较

OC(Output Compare)输出比较; 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形; 每个高级定时器和通用定时器都拥有4个输出比较通道; 高级定时器的前3个通道额外拥有死区生成和互补输出的功能。

2024-03-12 20:25:28 277 1

原创 stm32定时器定时中断和定时器外部时钟代码流程展示

1、开启TIM2的时钟;2、配置时钟源;3、时基单元初始化;4、中断输出配置;5、NVIC中断分组;6、NVIC配置;7、TIM使能;8、定时器中断函数。

2024-03-04 17:51:45 244 1

原创 stm32定时器

定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断;16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时;不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能;根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型;

2024-03-03 23:09:46 493 1

原创 stm32外部中断代码配置流程

1、开启GPIOB和AFIO的时钟,它们都在APB2总线上;2、初始化GPIO;3、AFIO选择中断引脚,将外部中断的14号线映射到GPIOB,即选择PB14为外部中断引脚;4、EXTI初始化;5、NVIC中断分组;6、NVIC配置;7、EXTI15_10外部中断函数。

2024-03-03 11:32:09 257 1

原创 STM32中断系统

中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回

2024-03-02 16:39:06 276

原创 GPIO简介

GPIO(General Purpose Input Output)通用输入输出口,可配置为8种输入输出模式。引脚电平为0~3.3V,部分引脚可容忍5V。输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等,输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。

2024-02-25 15:11:54 279

原创 Qt控件简要笔记

2.2、connect(sender,/*信号发送者*/&sender::sig1,/*信号*/receiver,/*信号接收者*/&receiver::slot1/*信号处理函数*/);4.2、设置水平表头ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");3.1、设置头:ui->treeWidget->setHeaderLabels(QStringList() << "英雄" << "英雄介绍");

2023-05-12 14:32:15 143

原创 static的简单使用

1、修饰全局变量:该变量只可以在同一个文件中使用。2、修饰局部变量:将该变量存在静态区,不会因为函数的结束或者一个生命周期的结束而释放。3、修饰函数:该函数只能在同一个文件中被调用。4、修饰类的数据成员:表明对该类所有对象这个数据成员都只有一个实例。即该实例归 所有对象共有,它先对象一步存在,要在类外进行初始化。5、修饰类的成员函数:由于static修饰的类成员属于类,不属于对象,因此static类成员函数是没有this指针的,this指针是指向本对象的指针。正因为没有this指针,所以static类

2022-06-23 10:32:46 119

原创 指针和引用的区别

相同点:他们都是地址的概念,指针指向一块内存,它的内容是所指内存的地址,而引用则是某块内存的别名。不同点:(1) 引用被创建的同时必须被初始化,指针则可以在任何时候被初始化;(2)不能有NULL 引用,引用必须与合法的存储单元关联,指针则可以是NULL;(3)一旦引用被初始化,就不能改变引用的关系,指针则可以随时改变所指的对象。...

2022-06-23 09:28:03 94

原创 vector的使用

1、头文件:#include 2、初始化vector对象的方式:vector v1; // 默认的初始化方式,内容为空vector v2(v1); // v2是v1的一个副本vector v3(n, i); // v3中包含了n个数值为i的元素vector v4(n); // v4中包含了n个元素,每个元素的值都是0vector v5(v4.begin(), v4.begin()+n); //将v4前n-1个元素赋值给v5...

2022-06-23 08:52:43 386

原创 C++重载、重定义、重写

1、重载:函数名相同,参数的个数、参数类型、参数顺序不同。2、重定义:子类重新定义父类中有相同名称的函数(参数列表可以不同但不能是虚函数),重定义后父类的方法就会被隐藏。可以通过作用域去调用父类隐藏的方法。3、重写:子类重新定义父类中有相同名称和参数的虚函数。...

2022-06-22 12:02:37 767

原创 函数指针的使用

我们在程序中定义了一个函数,在编译时系统会给这个函数代码分配一段存储空间,这段存储空间的首地址就是这个函数的地址,函数名表示的就是这个地址。我们定义一个指针变量来存放这个地址,这个指针变量就叫做函数指针变量,简称函数指针。...

2022-06-22 11:31:24 85

原创 C++数据类型转换

1、static_cast(静态类型转换):用于基本数据类型(char、int、double等)之间、对象之间、继承关系类对象指针之间、继承类指针之间的转换;不能用于基本数据类型指针之间的转换(char* 、int*、double*等)。2、dynamic_cast(动态类型转换) :用于函数父类与子类之间的指针或引用的转换;使用的前提是必须要有虚函数;不能用于基本不能用于基本数据类型指针之间的转换(char* 、int*、double*等)。...

2022-06-22 11:08:53 1919

原创 C++继承的权限问题

1、public继承public(父类)->public(子类);protected(父类)->protected(子类);父类的private不能被继承。2、protected继承public(父类)->protected(子类);protected(父类)->protected(子类);父类的private不能被继承。3、private继承public(父类)->private(子类);protected(父类)->private(子类);父类的private不能被继承。...

2022-06-22 10:24:50 1072 1

空空如也

空空如也

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

TA关注的人

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