- 博客(33)
- 收藏
- 关注
原创 STM32之时钟
1.1.1 时钟:•时钟是指 为芯片内部的各个模块(片上外设)提供的信号源,是芯片正常工作的基础。我们在写程序之前,首先都需要给要使用的那个模块(外设)打开时钟。•时钟是一种方波信号,时钟的频率越快,外设工作效率就越高。•时钟其实也可以理解人的心跳。
2026-01-10 00:08:36
443
原创 STM32之EXTI
• EXTI全称是(External Interrupt and Event Controller),中文是外部中断和事件控制器• 如图GPIO 的作用是可以读取引脚上面的数据,0是低电压,1是高电压• 而EXTI作用:可以检测GPIO引脚上的(可以用来边沿检测),可以检测上升沿或者下降沿,上升沿是由低电压变为高电压,下降沿是由高电压变为低电压。• 总结就是,EXTI可以用来。
2026-01-09 19:48:55
564
原创 STM32之中断
• 中断 - 是单片机应对 突发事件 的一种方式。如图:• 常规程序在遇到突发事件(中断)的时候,就会打断当前正在执行的程序,转而去执行相应的中断响应程序,直到执行完之后,再回到常规程序被打断的位置(中断点),继续执行常规程序。
2026-01-09 17:25:56
639
原创 STM32之SPI
•这个型号的单片机有两个SPI,但是挂载到不同的总线上。•SPI是单片机上的一个片上外设,是一个通信接口。•如图,W25Q64通过SPI总线和STM32进行通信•W25Q64是一种断电数据不丢失的Flash芯片,类似于电脑的硬盘。
2026-01-08 23:19:06
490
原创 STM32之IIC
•如图,这是一幅STM32的实物图:•两个设备可以通过串口来进行通信,通过对TX和RX引脚交叉接线。•从这里可以看出,在这块开发板上面 可以知道 有3个串口可以用来通信,但是串口通信是一对一的,也就是说仅仅只能接三个串口设备通信。所以这会导致通信接口不够用。
2026-01-04 02:54:30
698
原创 STM32之串口
•假如,如果有两个芯片要通信该怎么办,这时候就需要用到串口了。•串口,其实就是一种通信接口,是可以用来传输数据的,如图:•这里的关键是两个引脚要交叉接线,从而可以实现双向通信。1.1。
2026-01-03 23:16:41
715
原创 STM32之GPIO
•GPIO是,是(General-purpose input output)的英文简写。是所有微控制器必不可少的外设之一,其作用是可以由STM32直接驱动从而和外界进行交互,从而实现和外界设备进行通信,控制,采集以及捕获的功能。•GPIO口可以配置成多种工作模式,如图:•STM32单片机中有多组GPIO口,例如:GPIOA,GPIOB等等,每组最多有,不同型号的单片机所拥有的GPIO口数量不同。•STM32单片机引脚的电压为0-3.3v,部分引脚为5v。
2026-01-03 22:04:55
836
原创 QT之自定义控件
• QPainter是QT库中用于在控件上进行绘画的类。它提供了各种绘制功能,比如画线、画图形、画文本等。以下是一些基本的用法示例:1.初始化//在当前控件上进行绘画您可以设置画笔(用于描边)和画刷(用于填充)的颜色、样式等。// 设置画笔颜色为蓝色// 设置画刷颜色为黄色3.使用QPainter的方法来绘制线条、矩形、圆形、文本等。// 画线// 画矩形");// 画文本完成绘制后,QPainter对象会在其析构函数中自动结束绘制。• 请注意, QPainter的使用依赖于。
2026-01-03 04:08:37
1023
原创 QT之天气预报
• HTTP(超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的。它是万维网(WWW)的数据通信的基础。了解HTTP的基本概念对于理解现代网络通信至关重要。以下是HTTPHTTP是一个。请求包含请求的资源(如网页),而响应包含请求的资源的内容。HTTP定义了一系列的方法来表明对资源的不同操作,最常用的包括:•: 用于请求资源。•: 用于提交数据给服务器(例如,表单数据)。•: 用于上传文件或内容。•: 用于请求删除资源。•。服务器对,它表示请求的成功或失败,以及失败的原因。
2025-12-21 17:18:19
1063
原创 QT之简陋版网络调试助手
•加入网络权限• 创建一个基于 QTcpServer的服务端涉及以下关键步骤:1.QTcpServer• 实例化 QTcpServer。• 调用 listen 方法在特定端口监听传入的连接。2.• 为 newConnection 信号连接一个槽函数。• 在槽函数中,使用 nextPendingConnection 获取QTcpSocket以与客户端通信。3.• 通过连接 QTcpSocket 的readyRead信号来读取来自客户端的数据。• 使用 write 方法发送数据回客户端。
2025-12-15 11:48:00
715
原创 C++基础(三)
• 在C++中,友元(friend)关键字用于给特定的外部函数或类访问某类的私有(private)和保护 (protected)成员的权限。友元关系不是相互的,也不是可继承的。这意味着被声明为友元的函数或类可以访问原始类的私有和保护成员,但原始类不能访问友元的私有成员,除非它们也被声明为友元。• 友元主要有三种类型:1.一个普通函数(不是类的成员函数)可以被声明为一个类的友元函数。它可以访问该类的所有成员(公有、保护和私有)。2.一个类可以被声明为另一个类的友元。
2025-12-04 14:09:07
820
原创 C++基础(二)
• 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。• 那构造函数的作用是初始化成员变量,加载内存空间等• 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。
2025-12-02 01:54:36
935
1
原创 C++基础(一)
•定义命名空间,在一个头文件里面创建了一个命名空间double area(double r){//求圆的面积double getLength(double r){//求圆的周长•使用命名空间int main()//强制控制台用UTF-8编码" << endl;double r;cout << "请输入半径:" << endl;cin >> r;cout << "对应的周长是:" << getLength(r) << ",对应的面积是:" << area(r) << endl;
2025-12-01 15:28:11
838
原创 FreeRTOS之低功耗
• Tickless低功耗模式的本质是通过调用指令WFI实现睡眠模式!• 如图• 在任务运行时间统计实验中,可以看出,在整个系统的运行过程中,其实大部分时间是在执行空闲任务的。• 空闲任务:是在系统中的所有其它任务都阻塞或被挂起时才运行的。• 为了可以降低功耗,又不影响系统运行,该如何做?• 可以在空闲任务执行的期间,让MCU进入相应的低功耗模式,当其他任务准备运行的时候,唤醒MCU退出低功耗模式。
2025-11-21 15:36:02
301
1
原创 FreeRTOS之软件定时器
1. 软件定时器介绍• 定时器:从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可自定义定时器的周期。1. 软件定时器介绍。
2025-11-18 20:19:10
993
1
原创 FreeRTOS之任务通知
• 任务通知是FreeRTOS中一种轻量级任务间通信机制,允许一个任务或中断直接向另一个任务发送事件或数据,无需创建队列、信号量等中间对象。每个任务内部自带一个32位的通知值”(和一个“通知状态”(通过操作这两个变量实现快速同步。• 如图• 通俗比喻:• 任务通知就像直接给同事发微信消息,而传统队列/信号量则像通过公共邮箱传递信件。前者,后者需要。• 如图,区别。
2025-11-18 13:01:31
885
原创 FreeRTOS之事件标志组
• 事件标志组(Event Group)是FreeRTOS中用于的机制,通过位掩码(Bitmask)管理多个独立事件的状态。•事件位(每个位(bit)表示一个事件是否发生,例如:• BIT0 :按键K1按下。• BIT1 :传感器数据就绪。• BIT2 :网络连接成功。•事件组(由多个事件位组成的整数变量,FreeRTOS中默认支持24个事件位(低24位有效,高8位保留用于控制)。
2025-11-17 23:42:53
865
1
原创 FreeRTOS之队列集
• 队列集(Queue Set)是FreeRTOS中用于的机制,允许任务如队列数据到达、信号量触发等),任一事件触发即可唤醒任务。其核心作用包括:•:任务无需逐个检查队列信号量,通过事件驱动机制提升效率。•适用于需要响应多种异步事件的场景(如多设备输入、混合数据源同步),大概意思是:队列集通过提供一个“统一的事件等待接口”,把复杂的多路事件监听和分发逻辑,•:可在运行时动态添加或移除队列信号量。
2025-11-13 00:05:36
833
原创 FreeRTOS之信号量
• 二值信号量是一种特殊的同步机制(特殊类型的信号量),只有0(无效)和1(有效)两种状态。它类似于现实生活中的通行证”,任务需要持有该通行证才能执行特定操作。这种信号量主要用于实现对共享资源的互斥访问或者任务之间的同步。•长度为1、消息大小为0的特殊消息队列。•不关心队列中的具体数据,只关注队列是否为空(0)或满(1)。• 任务A等待信号量。
2025-11-11 11:11:56
463
原创 FreeRTOS之消息队列
• 队列(Queue)是FreeRTOS中实现的核心机制,用于在任务与任务、中断与任务之间传递数据。•:队列是一个即先发送的消息会被先接收,支持数据项的存储与按顺序读取。•:采用(复制数据本身),而非指针传递,确保数据安全性和独立性。但是,如果是大块数据也可以传地址值。•• 传感器数据采集与处理任务间的数据传输。• 中断服务程序(ISR)向任务传递事件标志。• 队列的关键名词:•:队列中的每一个数据。•:队列能够存储队列项目的最大数量。
2025-11-09 01:21:53
718
原创 FreeRTOS之时间管理
• 延时函数 是 实时操作系统中用于的重要机制,使任务能够在指定时间内暂停执行,让处理器执行其他任务。在FreeRTOS中,延时函数是任务管理和时间管理的重要组成部分。1.2 延时函数的作用•:允许低优先级任务获得CPU执行时间(延时阻塞)。•:确保操作按照预定时间间隔执行(一秒执行这个低优先级任务,然后在执行高优先级 任务)。•:在无需执行时进入低功耗状态。当任务没有事情要做时,调用延时函数让出CPU资源,这样系统可以进入低功耗模式,而不是让CPU空转浪费资源•。
2025-11-04 20:14:35
802
1
原创 FreeRTOS之中断管理
•FreeRTOS0-15级,数值越小优先级越高)。•:管理的范围:优先级≥(默认5)的中断(即5-15在ISR 中必须使用带 FromISR的API(如),避免调用阻塞函数(在中断处理程序中)。•:优先级<5的中断(0-4),属于高优先级中断,,即使系统处于临界区也不受影响。• 中断优先级的寄存器(IPR):•在 STM32中,中断优先级是通过中断优先级配置寄存器的高4位[7:4]来配置的。因此STM32支持最多16。
2025-11-03 20:25:34
694
1
原创 FreeRTOS之任务
• 空闲任务(Idle Task)是FreeRTOS调度器启动时自动创建的后台任务,具有以下特性:1.固定为0优先级(时刻都可以抢占),仅在所有其他任务阻塞或挂起时运行。2.必要性:确保系统始终有任务可运行,防止处理器空转。3.资源占用:默认堆栈大小为(通常较小,如128字)。5.4.2 空闲任务的核心功能•自删除任务的内存释放:当任务调用 vTaskDelete(NULL) 删除自身时,其任务控制块(TCB)和堆栈内存由空闲任务自动回收。•若任务 A删除任务B。
2025-10-28 16:12:34
696
2
原创 IIC以及OLED
IIC全称Inter-Integrated Circuit (集成电路总线)是由PHILIPS公司在80年代开发的。,用于连接微控制器及其外围设备。6.OLED寻址模式。
2025-02-14 15:55:56
823
原创 非标协议外设
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通空调;.DHT11温湿度传感器。实操1,显示一个字符。实操2,显示一行数据。
2025-02-14 15:30:41
903
原创 串口以及wifi模块
简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。5.实践PC通过串口点亮LED,非中断方式。)是指数据一位一位地按顺序传送。6.实践PC通过串口点亮LED,中断方式。3.从单片机发送一个字符‘a’给PC端。以设备模式接入家中路由器配置,发送指令。11.0592MHz,波特率没误差。7.实践如何处理字符串型指令。实践,发送一段字符串给PC。),是采用串行通信方式的。9.wifi模块当服务器。串行接口简称串口,也称。
2025-02-14 15:12:00
768
原创 定时器,舵机,超声波测距模块实验
1.简介 中断 定义 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统,请示CPU中断的请求源称为中断源。微型机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它服务的时候,这就存在CPU优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排
2025-01-25 02:30:28
980
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅