- 博客(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-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-蜂鸣器
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
原创 QT-结构体到类
例如:类也可以定义students的年龄、性别、成绩等成员数据的属性;当我们实例化一个对象时,C++可以在定义时具体化。例如:结构体可定义students的年龄、性别、成绩等抽象的性质;具体性别、年龄和成绩的多少在结构体指向具体变量。结构体 --------> 结构体变量。类 --------> 对象。
2024-04-23 21:36:29
407
原创 QT-基本数据类型
C语言中需要包含头文件:#include <stdbool.h>,而在C++中可以直接用。存储真值 true 或假值 C99以上支持。存储中文或者unicode。
2024-04-20 20:55:39
496
原创 QT-命名空间
首先包含了定义 Cir 命名空间的头文件#include"cir.h"然后,我们可以使用cir:: 访问该命名空间中的函数和常量。可以命名这个命名空间名称 :namespace Cir { },接着定义相关功能。
2024-04-20 20:16:40
600
原创 [Linux] Linux文件编程 1.1 文件打开及创建
Linux用open函数打开文件,下一步write(写)read(读)文件时,就要通过open()返回值,也就是。每个进程打开一个文件时,都会建立一个结构体来管理文件,文件描述符在结构体中起到索引的作用。pathname:文件名(路径)文件系统原理及访问机制。文件在内核中的管理机制。文件信息节点inode。确定要操作的特定文件。
2023-10-08 19:43:55
213
原创 [Linux] 6.VMware虚拟机网络配置
如果想自行配置特定ip地址,可以用sudo +ifconfig+网卡名+想要的ip地址。在VMware虚拟机下可以在虚拟网络编辑器看到三种模式。物力网卡-虚拟机-虚拟机1、2、3。物理网卡-虚拟机+真机。
2023-10-01 22:53:34
458
原创 [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.5 联合体共用体
对比结构体:不同类型的变量拥有自己的内存空间,而联合体是在一片空间内,既可以存放int、char、double……不同类型的数据共享同一片空间。结构体元素有各自单独空间。共用体元素共享空间,空间大小由最大类型确定。结构体元素互不影响。共用体赋值会导致覆盖。
2023-09-27 19:31:39
165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人