自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RCC-复位和时钟控制

1. 软件复位,备份区域复位可由设置备份域控制寄存器 (RCC_BDCR)中的 BDRST位产生。● 32.768kHz低速外部晶体:也可用来通过程序选择驱动RTC(RTCCLK)。2. 在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。备份区域拥有两个专门的复位,它们只影响备份区域。系统 复位将复位所有寄存器至它们的复位状态。1. 上电/掉电复位(POR/PDR复位)电源复位将复位除了备份区域外的所有寄存器。当以下事件中之一发生时,产生备份区域复位。4. 软件复位(SW复位)

2024-12-24 15:43:15 242

原创 STM32点亮LED灯

使用cubeMX找到STM32F103C8T6芯片,选择PA0,PA1作为输入端口,PB8,PB9作为输出端口,同时设置Debug为串口。按键按下产生低电平信号,接收信号反转电平,实现LED灯亮灭。③灯的亮灭过于灵敏,可以用while()循环减少扰动。②实现按下按钮就切换LED灯的电平,实现亮和灭。KEY被摁下后接地,有一个低电平信号。①定义一个函数,检测电平,判断按键状态。1、首先在原理图中寻找LED灯。3、摁一下熄灭,再摁点亮。宏指令:一般状态用宏指令。

2024-12-22 20:14:00 600

原创 推挽输出和开漏输出

开漏输出:无法正真的输出高电平(会分压),高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。推挽输出:能真正的输出高低电平。

2024-12-21 20:00:00 227

原创 GPIO口

GPIO:通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,实现与外部通讯、控制以及数据采集的功能。某些特殊功能的引脚不能作为I/O口,电源、boot。可以控制GPIO口引脚的电平变化达到目的。

2024-12-21 19:31:31 133

原创 标准库与HAL库的区别

每款芯片都编写了一份库文件,stm32fxxxx。配置结构体变量成员就可以修改外设的配置寄存器。大大降低单片机开发难度,不同芯片间不方便移植。标准库:将寄存器底层操作封装起来,提供一整套接口(API)供开发者使用。为了兼容所有芯片,代码量庞大执行效率低下。②更强的灵活性,随心所欲达到自己的目的。为实现不同芯片之间移植代码。HAL库:ST公司主推的开发方式,新的芯片不再提供标准库。寄存器:①寄存器众多,需要经常翻阅芯片手册,费时费力。③深入理解单片机运行原理。

2024-12-21 19:14:50 421

原创 STM32介绍

单片机:单片机是一种集成电路芯片,把具有数据处理的中央处理器CPU、随机存取器RAM、只读存取器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上,构成一个小而完善的微型计算机系统。例如:STM32F103C8T6xXX。103:特定功能(STM32基础型)8:闪存容量(64Kbytes)6:温度范围(-40~85℃)C:引脚数(48或49引脚)F:产品类别(基础型)T:封装形式(QFP)

2024-12-21 18:58:19 100

原创 全志ARM-SG90舵机

向黄色信号线“灌入”PWM信号。PWM波的频率不能太高,50hz,即周期=1/频率=1/50=0.02s,20ms左右数据: 不同的PWM波形对应不同的旋转角度,以20ms为周期,50hz为频率的PWM波。it_value:计时器的初始值,一般基于这个初始值来加或者来减,看控制函数的参数配置 it_interval:程序跑到这之后,多久启动定时器。itimerval 结构体。itimerval 结构体。signal信号处理函数。函数setitimer。

2024-05-11 21:45:31 370

原创 QT-初始化列表

初始化列表 : a(x), b(y), c(z) 的意思是用 x 初始化a ,用 y 初始化 b,用 z 初始化 c。:对于非基本类型的对象,使用初始化列表比在构造函数体内赋值更高效,因为它避免了先默 认构造然后再赋值的额外开销。:对于引用类型和常量类型的成员变量,必须使用初始化列表,因为这些类型的成员变量在 构造函数体内不能被赋值。使用初始化列表是C++中推荐的初始化类成员变量的方式,因为它提供了更好的性能和灵活性。:成员变量的初始化顺序是按照它们在类中声明的顺序,而不是初始化列表中的顺序。

2024-05-03 22:07:47 465

原创 QT-构造函数

【代码】QT-构造函数。

2024-05-03 21:50:25 601

原创 QT-new和delete关键字

在这个例子中, new 被用来分配一个 delete[] 来释放内存。每个 MyClass 类型的对象和一个整数数组,然后使用 new 都对应一个 delete 和 delete ,保证了动态分配的内存被适当管理。匹配使用 delete 和 delete[ ] ::为避免未定义行为, 分配的单个对象应该使用delete,,使用 new[] 分配的数组应该使用 delete[ ]释放。例如, new int 会分配一个 int 类型的空间,并返回一个指向该空间的指针。new 也可以用来分配一个对象数组。

2024-05-02 22:23:01 606

原创 QT-this关键字

拆解成car.setYear(2023),setYear的返回值是this的值,也就是构造函数的地址的值,其实就是对象Car,后面加上.display();直接进行下一步的函数调用。

2024-05-02 21:57:46 552

原创 QT-重载

过度使用运算符重载可能导致代码难以理解和维护。确保它们的使用直观且合理。运算符重载是C++中提高代码可读性和表达力的强大工具,但需要谨慎使用,以保证代码的清晰性和维护 性。:重载的运算符应与其原始意图和常见用法保持一致。例如,+ 运算符通常应该实现加法, 而不是其他意外的操作。

2024-05-02 21:22:26 102

原创 QT-引用

试想变量名称是变量附属在内存位置中的标签,您可以把引用当成是变量附属在内存位置中的第二 个标签。因此,您可以通过原始变量名称或引用来访问变量的内容。实例:把引用作为参数。

2024-05-02 19:32:54 87

原创 全志ARM-超声波测距

【代码】全志ARM-超声波测距。

2024-04-27 22:44:52 982

原创 QT-类的组合

【代码】QT-类的组合。

2024-04-27 15:58:00 194

原创 QT-真正的成员函数

【代码】QT-真正的成员函数。

2024-04-27 15:15:25 251

原创 全志ARM-蜂鸣器

vim的设置,修改/etc/vim/vimrc文件,需要用超级用户权限。为了方便编译,可以将以上代码写成脚本,避免繁琐的手动链接。我们可以在example中学习别人是如何链接的。usleep的单位是微秒,sleep是秒。后面我们进行编译时就可以在后面链接库。

2024-04-26 21:02:33 565

原创 全志ARM-网络链接

命令接入网络 nmcli dev wifi connect +(WiFi名,不要有空格)+password +(WiFi密码)查看IP地址 ip addr show wlan0或ifconfig。命令扫描周围的WIFI热点 nmcli dev wifi。出现successfully就连接成功了。

2024-04-26 19:22:38 231

原创 全志ARM-修改开发板内核启动日志

把第一行内核启动输出权限改为7,第二行把输出方式该为“serial”串口输出。默认输出级别为1,需要用超级用户权限修改。

2024-04-26 18:52:25 414

原创 全志ARM-官方库SDK安装和验证

若外设库就完成安装了,就会出现以下界面。

2024-04-26 18:37:18 494

原创 QT-结构体到类

例如:类也可以定义students的年龄、性别、成绩等成员数据的属性;当我们实例化一个对象时,C++可以在定义时具体化。例如:结构体可定义students的年龄、性别、成绩等抽象的性质;具体性别、年龄和成绩的多少在结构体指向具体变量。结构体 --------> 结构体变量。类 --------> 对象。

2024-04-23 21:36:29 407

原创 QT-Lambda表达式

【代码】QT-Lambda表达式。

2024-04-21 20:26:04 506

原创 QT-流程控制

【代码】QT-流程控制。

2024-04-20 21:16:28 258

原创 QT-基本数据类型

C语言中需要包含头文件:#include <stdbool.h>,而在C++中可以直接用。存储真值 true 或假值 C99以上支持。存储中文或者unicode。

2024-04-20 20:55:39 496

原创 QT-输入输出

【代码】QT-输入输出。

2024-04-20 20:24:18 601

原创 QT-命名空间

首先包含了定义 Cir 命名空间的头文件#include"cir.h"然后,我们可以使用cir:: 访问该命名空间中的函数和常量。可以命名这个命名空间名称 :namespace Cir { },接着定义相关功能。

2024-04-20 20:16:40 600

原创 C语言-贪吃蛇 1.输入控制ncurse

使用这些功能键时,必须要用keypad设置功能键。输入/KEY_UP查找上下左右键功能键的函数。

2023-10-11 18:18:12 738

原创 [Linux] Linux文件编程 1.1 文件打开及创建

Linux用open函数打开文件,下一步write(写)read(读)文件时,就要通过open()返回值,也就是。每个进程打开一个文件时,都会建立一个结构体来管理文件,文件描述符在结构体中起到索引的作用。pathname:文件名(路径)文件系统原理及访问机制。文件在内核中的管理机制。文件信息节点inode。确定要操作的特定文件。

2023-10-08 19:43:55 213

原创 9.5 链表动态创建之头插法

【代码】9.5 链表动态创建之头插法。

2023-10-05 19:35:52 107

原创 9.4 链表删除指定节点(静态创建链表)

【代码】9.4 链表删除指定节点(静态创建链表)

2023-10-05 16:38:39 146

原创 9.3 链表从指定节点插入新节点

【代码】9.3 链表从指定节点插入新节点。

2023-10-04 21:35:36 540

原创 9.2 链表静态添加和遍历

循环语句中判断是否为空指针,再进行判断,最后进行链表地址的指向。

2023-10-04 16:52:53 108

原创 9.1 链表

【代码】9.1 链表。

2023-10-02 19:11:03 135

原创 [Linux] 6.VMware虚拟机网络配置

如果想自行配置特定ip地址,可以用sudo +ifconfig+网卡名+想要的ip地址。在VMware虚拟机下可以在虚拟网络编辑器看到三种模式。物力网卡-虚拟机-虚拟机1、2、3。物理网卡-虚拟机+真机。

2023-10-01 22:53:34 458

原创 [Linux] 5.Linux虚拟机和Windows文件共享

点击添加,选择Windows文件的路径,名称作为Linux访问的路径。

2023-10-01 21:27:43 406

原创 [Linux] 4.常用初级指令

pwd:显示当前文件路径ls:列出当前文件夹下有哪些文件mkdir+空格+文件名:创建一个新的文件夹cd+空格+文件夹名:进入文件夹cd..:退到上一层文件夹ls -a:把所有文件夹列出来.代表当前文件夹..代表上层文件夹用ls指令时两个被隐藏起来mv:①mv * +匹配符 +文件夹地址:例如mv *.c把所有.c文件移动(剪切)到目标文件夹 ②mv +文件+新的文件名:文件重命名cp+文件+拷贝的文件名:拷贝文件Tab键:自动补全(文件名太长,一般输入前面几个字符就会自动补全)

2023-10-01 20:48:22 221

原创 8.7 typedef关键字

【代码】8.7 typedef关键字。

2023-09-28 19:07:36 209

原创 8.6 枚举类型

【代码】8.6 枚举类型。

2023-09-28 18:03:10 145

原创 8.5 联合体共用体

对比结构体:不同类型的变量拥有自己的内存空间,而联合体是在一片空间内,既可以存放int、char、double……不同类型的数据共享同一片空间。结构体元素有各自单独空间。共用体元素共享空间,空间大小由最大类型确定。结构体元素互不影响。共用体赋值会导致覆盖。

2023-09-27 19:31:39 165

原创 8.4 结构体二级指针

【代码】8.4 结构体二级指针。

2023-09-27 16:37:01 204

空空如也

空空如也

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

TA关注的人

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