文章列表

2.7k2 分钟

# 目前常用的程序调试方式 串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息 显示屏调试:直接将显示屏连接到单片机,将调试信息打印在显示屏上 Keil 调试模式:借助 Keil 软件的调试模式,可使用单步运行、设置断点、查看寄存器及变量等功能。 点灯调试法:在位置放一个点灯代码,运行到了,灯就亮 注释调试法:将新加入的程序全部注释,然后一次一行解除注释,直到错误出现 对照法:找到一个没有问题的程序,对照程序逻辑 总之,测试程序的基本思想就是:缩小范围、控制变量、对比测试等 # OLED 简介 OLED(Organic Light Emitting Diode):有机
6.5k6 分钟

# 按键简介 按键:常见的输入设备,按下导通,松手断开 按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动 # 传感器模块简介 传感器模块:传感器元件(传感器模块就是利用传感器元件,比如如下图的光敏电阻 / 热敏电阻 / 红外接收管等)的电阻会随外界模拟量的变化而变化(比如光线越强,光敏电阻的阻值就越小),通过与定值电阻进行串联分压即可得到模拟电压输出,再通过电压比较器进行二值化(二值化就是要么是高要么是低)即可得到数字电压输出 如下为传感器模块的基本电路,详细介绍。 这个 N1 就是传感器元件所代表的可变电阻,它的阻
5.3k5 分钟

# LED 闪烁 面包板接线图如下: #include "Delay.h"#include "stm32f10x.h" // Device headerint main(void) { /* 开启时钟 */ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); // 开启 GPIOA 的时钟 // 使用各个外设前必须开启时钟,否则对外设的操作无效 &
12k11 分钟

# GPIO 简介 GPIO(General Purpose Input Output)通用输入输出口。 可配置为 8 种输入输出模式。 引脚电平:0V~3.3V,部分引脚可容忍 5V。(0V 就是低电平是数据 0,3.3V 是高电平是数据 1。容忍 5V 意思是可以在这个端口输入 5V 的点电压,也认为是高电平,但是对于输出而言,最大就只能输出 3.3V,因为供电就只有 3.3V,具体哪些端口能容忍 5V,可以参考一下 STM32 的引脚定义,带 FT 的就是可以容忍 5V,不带 FT 的就只能接入 3.3V 电压) 输出模式下可控制端口输出高低电平,用以驱动 LED、控制蜂鸣器、模拟通信协
14k13 分钟

# STM32 简介 STM32 是 ST 公司基于 ARM Cortex-M 内核开发的 32 位微控制器 STM32 常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等 STM32 功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器 # ARM ARM 既指 ARM 公司,也指 ARM 处理器内核 ARM 公司是全球领先的半导体知识产权(IP)提供商,全世界超过 95% 的智能手机和平板电脑都采用 ARM 架构 ARM 公司设计 ARM 内核,半导体厂商完善内核周边电路并生产芯片 # STM32F103C8T6 # 参数 系列:
4.6k4 分钟

本文章用于记录 C++ 中的一些平时不太常用,但在特定情况下很好用的函数。 # 算法库 algorithm # 搜索操作 # count 和 count_if # count 主要特点: 统计容器或数组中特定值出现的次数 时间复杂度:O(n)O(n)O(n) 支持所有标准容器和数组 使用示例: vector<int> vec = {1, 2, 3, 4, 2, 2, 3, 1, 2}; // 统计 2 出现的次数 int count_2 = count(vec.begin(), vec.end(), 2
40k36 分钟

# 面向对象的基本概念 面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它基于 “对象” 的概念,将数据和操作数据的方法封装在一起。面向对象的四大基本特征是抽象、封装、继承和多态,这些特征构成了 OOP 的核心。 抽象(Abstraction): 抽象是指隐藏对象的内部细节,只暴露必要的接口。这允许我们忽略那些不影响我们工作的细节,专注于对象的外部行为。在编程中,抽象可以通过接口或抽象类来实现。 封装(Encapsulation): 封装是将数据(属性)和操作这些数据的方法(行为)捆绑在一起,并隐藏内部实现细节。这有助于减少系统部分间的依赖,提高
7.7k7 分钟

# 慢查询 MySQL 的慢查询日志是一个用于记录执行时间超过特定阈值的 SQL 查询的工具,它能帮助快速定位和优化这些查询。 启用慢查询日志需要修改 MySQL 配置文件,并设置执行时间阈值。启用后,所有超过这个时间的查询都会被记录到指定的日志文件中。 通过分析这些日志,可以采取多种措施来优化 SQL 查询,包括改进索引、重写查询或调整数据库配置。 # 设置 # 默认设置 慢查询日志的位置:慢查询日志默认处于未开启状态。 show variables like '%slow%'; # 获取慢查询日志的相关信息 慢查询 SQL 的时间阈值:默认阈值为 10 s。 show
19k17 分钟

# 日志系统 # 日志系统的重要性 错误跟踪:当系统出现问题时,日志是诊断问题的重要工具。通过分析日志,可以追踪错误发生的原因和上下文。 安全审计:日志可以记录安全相关的事件,如登录尝试、权限变更等,这对于检测和响应安全威胁至关重要。 性能监控:日志可以帮助监控系统性能,通过分析日志中的性能指标,可以发现潜在的性能瓶颈。 系统维护:日志提供了系统运行的历史记录,有助于理解系统的运行模式和预测可能的故障。 # 日志系统的分类 业务日志:记录业务操作的详细情况,如交易处理、订单状态变更等,有助于业务分析和问题追踪。 系统日志:记录系统运行时的关键信息,如启动、关闭、错误、警告等,有助于系统维
11k10 分钟

# 进程虚拟内存空间 # 虚拟内存空间 将 C 程序的内存管理任务完全交给操作系统,虽然听起来是一种简化的方法,但实际上可能会带来一系列问题: 进程隔离性:操作系统需要确保不同进程之间的内存空间相互隔离,以防止一个进程访问或破坏另一个进程的数据。如果 C 程序直接管理物理内存,这种隔离性很难实现,因为程序可能无意中访问到其他进程的内存区域,或者操作系统难以跟踪和限制每个进程的内存访问。 数据安全性:当程序直接与物理内存交互时,数据的安全性和完整性难以得到保障。恶意程序或错误操作可能会破坏内存中的数据,影响系统的稳定性和可靠性。 内存碎片化:直接操作物理内存可能导致内存碎片化问题。随着时间的