自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AD绘图基本操作

可以通过双击元器件,在出现的编辑页面中修改X,Y,Z的值来改变元器件的放置方式。3D视角鼠标左键只起到选择元器件并移动之的功能,放置完成之后,可以按下数字3,查看3D状态的显示。或者使用外接键盘的九宫格数字键2468进行旋转。点进去,下载,格式选择.sldprt文件。下载安装包,解压出现.sldprt文件。注意:快捷键都要在英文模式下才能生效。选择对应路径下的库文件,即导入成功。将出现的图标移动到要放置的地方。shift+鼠标右键是旋转,CTRL+鼠标右键是放大缩小。单纯鼠标右键只能平移桌面。

2025-03-17 22:55:05 356

原创 FreeRTOS-中断管理

创建一个队列及一个任务,按下按键 KEY1 触发中断,在中断服务函数里向队列里发送数据,任务则阻塞接 收队列数据。这样就实现了,使用中断往队列的发送信息,用任务阻塞接收信息。

2025-02-28 17:12:50 171

原创 FreeRTOS-软件定时器实操

创建两个定时器:定时器1,周期定时器,每1秒打印一次 “我是周期定时器”定时器2,单次定时器,启动后 2 秒打印一次 “我是单次定时器”

2025-02-28 16:36:48 221

原创 FreeRTOS-任务通知

任务通知可以替代二值信号量、计数信号量、事件标志组,可以替代长度为 1 的队列(可 以保存一个 32 位整数或指针值),并且任务通知速度更快、使用的RAM更少!

2025-02-28 16:03:20 211

原创 FreeRTOS-事件标志组实验

创建一个事件标志组和两个任务( task1 和 task2),task1 检测按键,如果检测到 KEY1 和 KEY2 都按过,则执行 task2。

2025-02-28 11:43:27 107

原创 FreeRTOS-关于互斥量小实验

在创建一个二值信号量,因为优先级翻转是在二值信号量中出现的。后面我们会发现,低优先级的任务不会被中优先级的任务打断了。上面这个框中实现的就是优先级翻转,符合下述的描述。2. 使用互斥量优化优先级翻转问题。分别是高优先级、中优先级、低优先级。1. 演示优先级翻转。

2025-02-27 22:42:54 624

原创 FreeRTOS-计数型信号量

创建一个计数型信号量,按下 KEY1 则释放信号量,按下 KEY2 获取信号量。

2025-02-27 21:37:03 145

原创 FreeRTOS-二值信号量实操

创建一个二值信号量,按下 KEY1 则释放信号量,按下 KEY2 获取信号量。

2025-02-27 20:41:27 386

原创 FreeRTOS-在队列发送读取数据小实验

创建一个队列,按下 KEY1 向队列发送数据,按下 KEY2 向队列读取数据。

2025-02-27 19:29:57 238

原创 FreeRTOS-任务的创建与删除小实验

创建 4 个任务:taskLED1,taskLED2,taskKEY1,taskKEY2,任务要求如下:taskLED1:间隔 500ms 闪烁 LED1;taskLED2:间隔 1000ms 闪烁 LED2;taskKEY1:如果 taskLED1 存在,则按下 KEY1 后删除 taskLED1 ,否则创建 taskLED1;taskKEY2:如果 taskLED2 正常运行,则按下 KEY2 后挂起 taskLED2 ,否则恢复 taskLED2。

2025-02-27 12:45:51 412

原创 STM32-智能小车项目

ST-link接线实物图:正面: 反面:使用L9110S电机模块电机驱动模块L9110S详解 | 良许嵌入式新建文件夹智能小车项目在里面复制19-串口打印功能重命名为01-让小车动起来新建文件夹motor,如下图所示打开项目加载文件先更改引脚然后分装函数前进,后退,左转,右转,停止函数二、串口控制小车注意:串口控制小车与蓝牙控制小车类似复制01-让小车动起来重命名为02-串口控制小车将蓝牙模块的文件粘贴到改项目中进行修改打开项目文件加载文件将蓝牙模块的串口2代码粘贴到02项目中将接收到的串口2的数

2025-02-24 23:56:04 2502 1

原创 STM32-智能台灯项目

1. 红外传感器检测是否有人,有人的话实时检测距离,过近则报警;同时计时,超过固定时间则报警;2. 按键 1 切换工作模式:智能模式、按键模式、远程模式;3. 智能模式下,根据光照强度自动调整光照档位(低亮、中亮、高亮),没人则自动光灯;4. 按键模式下,按键 2 可以手动调整光照档位;5. 远程模式下,可以通过蓝牙控制光照档位、计时等;6. 按键 3 暂停/开始计时,按键 4 清零计时;7. OLED 显示各项数据/状态。

2025-02-23 21:48:15 2617 1

原创 STM32-有关内存堆栈、map文件

map文件的位置。

2025-02-22 23:39:39 395

原创 STM32-心知天气项目

使用ESP8266通过HTTP获取天气数据(心知天气),并显示在OLED屏幕上。按键1:循环切换今天明天后天天气数据;按键2:更新天气。

2025-02-22 23:20:38 1024 1

原创 C语言-extern关键字

好看视频-轻松有收获

2025-02-22 12:33:16 121

原创 STM32-温湿度上传OneNET项目

使用ESP8266连接OneNET云平台,并通过MQTT协议上传DHT11获取的温湿度值。

2025-02-21 19:06:30 1133

原创 STM32-笔记44-CAN协议

CAN协议,全称为(控制器局域网络),是一种广泛应用的,最初由德国BOSCH公司开发,并已成为国际标准。CAN协议是一种基于的异步串行通信协议,采用双绞线作为传输介质,具有和独特的设计特点。1.1、CAN协议与I2C\SPI协议的不同?与I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。CAN_High:低速CAN。

2025-01-17 22:49:34 707

原创 STM32-笔记43-低功耗

STM32具有运行、睡眠、停止和待机四种工作模式。上电后默认是在运行模式,当内核不需要继续运行时,可以选择后面三种低功耗模式。关于低功耗模式都集中在电源控制模块下。

2025-01-15 11:40:15 998

原创 STM32-笔记42-实时时钟项目

1. OLED屏幕显示当前时间、日期、闹钟等信息;2. 正常模式下,按下 KEY1 ,进入时间设置模式,此时按下 KEY2 则可以循环跳转修改秒、分、时、日、月、年;3. 时间设置模式下,KEY3 增加数值,KEY4 减小数值,再次按下 KEY1 则退出时间设置模式,并保存修改后的时间;4. 正常模式下,按下 KEY2,进入闹钟设置模式,此时按下 KEY2 则可以循环跳转修改秒、分、时;

2025-01-13 18:45:14 348

原创 STM32-笔记41-RTC(实时时钟)

实时时钟的缩写是RTC(Real_Time Clock)。RTC 是集成电路,通常称为时钟芯片。实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后, RTC的设置和时间维持不变。复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。

2025-01-11 20:50:14 986

原创 STM32-笔记40-BKP(备份寄存器)

备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。此外, BKP控制寄存器用来管理侵入检测和RTC校准功能。复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问:通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟。

2025-01-11 13:14:35 598

原创 STM32-笔记39-SPI-W25Q128

一般我们使用存储器,都是ARM、ROM、FLASHW25Q128是NOR Flash:一种非易失性存储器,它可以在断电或掉电后仍然保持存储的数据,因此被广泛应用于长期数据存储。它具有容量大,可重复擦写、按“扇区/块”擦除的特性。Flash 是有一个物理特性:只能写 0 ,不能写 1 ,写 1 靠擦除。W25Q128是华邦公司推出的一款容量为 128M-bit(相当于 16M-byte)的 SPI 接口的 NOR Flash 芯片。6.1 W25Q128存储架构。

2025-01-08 18:51:49 1280

原创 STM32-笔记38-I2C-oled实验

驱动OLED屏幕,显示点、线、字符、字符串、汉字、图片等内容。

2025-01-07 11:57:51 687 2

原创 STM32-笔记37-吸烟室管控系统项目

1. 使用 mq-2 获取环境烟雾值,并显示在 LCD1602 上;2. 按键修改阈值,并显示在 LCD1602 上;3. 烟雾值超过阈值时,蜂鸣器长响,风扇打开;烟雾值小于阈值时,蜂鸣器不响,风扇关闭;

2025-01-05 19:56:20 420

原创 STM32-笔记36-ADC(模拟/数字转换器)

使用 ADC1 采集通道 1 的电压值,通道 1 连接光敏电阻传感器。复制项目文件夹19-串口打印功能重命名为43-ADC单通道采集实验打开项目文件加载文件main.cHAL_Init();/* 初始化HAL库 *//* 设置时钟, 72Mhz */led_init();/* 初始化LED灯 */adc_init();\r\n");while(1)//换算成电压的形式输出adc.c//ADC的句柄//初始化ADC函数//基地址//数据右对齐//要不要扫描?不需要扫描。

2025-01-05 18:55:17 1225

原创 STM32-笔记35-DMA(直接存储器访问)

实验目的使用DMA将一个大数组的数据搬运到另一个位置。复制项目文件19-串口打印功能重命名为40-DMA实验(内存到内存)新建文件夹dma dma.c dma.h打开项目文件加载文件main.cHAL_Init();/* 初始化HAL库 *//* 设置时钟, 72Mhz */led_init();//初始化led灯dma_init();\r\n");led2_OFF();led1_OFF();led2_ON();

2025-01-04 19:46:17 1202

原创 STM32-笔记34-4G遥控灯

外网连接内网连接。

2025-01-04 00:15:48 373 1

原创 STM32-笔记33-Wi-Fi遥控风扇项目

电脑通过esp8266模块远程遥控风扇。PC端的网络调试助手(以服务端的模式连接客户端的esp8266)

2025-01-03 23:04:43 488

原创 STM32-笔记32-ESP8266作为服务端

esp8266作为服务器的时候,这时候网络助手以客户端的模式连接到esp8266,其中IP地址写的是esp8266作为服务器时的IP地址,可以使用AT+CIFSR查询esp8266的ip地址,端口号默认写333。

2025-01-03 21:51:05 689

原创 STM32-笔记31-ESP8266连接TCP服务器

使用网络助手,设立TCP服务器。

2025-01-03 18:27:58 321 1

原创 STM32-笔记30-编程实现esp8266联网功能

复制项目文件34-ESP8266串口间的通信。重命名为35-编程实现ESP8266联网功能。串口2连接ESP8266模块。

2025-01-03 17:35:45 404

原创 C语言-sprintf

缓冲区溢出‌:由于sprintf  没有限制输出的长度,如果输出的字符串超过目标缓冲区的大小,可能会导致缓冲区溢出,从而引发安全问题。sprintf是一个在C语言中用于字符串格式化的函数,其功能是将格式化的数据写入某个字符串中。// buffer 将包含 "3.14"format‌:指向一个格式化字符串的指针,该字符串定义了输出字符串的格式。‌...‌:可选参数,可以是任何类型的数据,用于替换格式化字符串中的占位符。

2025-01-03 17:33:41 423

原创 STM32-笔记30-串口间的通信

本次实现串口间的正常通信,主要是为了后面的在此之前需要检验两个串口之间是否可以正常通信,串口1:是用来接收串口2中打印的日志-当给ESP8266输入AT指令之后,打印出的结果显示。串口2:用来接后续的ESP8266-实现单片机通过串口2传递AT代码信息给ESP8266,ESP8266解析AT执行把结果日志通过串口2传递给串口1。检验两个串口间是否可以正常通信,使用两个USB转TTL用杜邦线和STM32连接,两个USB连接电脑,电脑上的两个串口助手分别与其相连接。

2025-01-03 15:11:14 600

原创 STM32-笔记29-蓝牙遥控插座项目

手机通过蓝牙模块远程遥控风扇。(插座的原理就是继电器,所以控制继电器就是控制插座电源)

2025-01-02 21:22:46 581

原创 STM32-笔记28-蓝牙模块

HC-08 蓝牙模块是通过串口与单片机进行通信,这个模块既可以作为主机也可以作为从机(通过 AT 指令配置)。有些蓝牙模块不支持主机(如 HC-02 、HC-04),所以在使用时需要注意区分。HC-08 蓝牙模块实物图如下所示:可以看到,HC-08 模块一共有 6 个引脚,下面详细介绍各个引脚的作用。• STATE:状态输出引脚。未连接时,则为低电平。连接成功时,则为高电平。可以在程序中作指示引脚使用;• RXD:串口接收引脚。接单片机的 TX 引脚(如果是5V MCU,需串联一个 220R 电阻)

2025-01-02 20:02:04 1523

原创 STM32-笔记27-串口

1. 全双工通信:USART支持全双工通信,即数据可以在两个方向上同时传输(A→B且B→A)。这使得USART能够满足许多需要双向通信的应用场景。2. 同步与异步传输:尽管USART的“S”代表同步,但在实际应用中,USART更常用于异步通信。然而,它也支持同步通信模式,只是这种模式通常用于兼容其他协议或特殊模式,并且两个USART设备不能通过同步模式进行直接通信。3. 波特率发生器:USART自带波特率发生器,最高可达4.5Mbits/s,可以根据需要配置不同的波特率。

2025-01-01 18:01:41 1199

原创 STM32-笔记26-WWDG窗口看门狗

窗口看门狗内有一个7位的递减计数器,并可以设置成自由运行。它可以被当成看门狗用于在发生问题时复位整个系统。它由主时钟驱动,具有早期预警中断功能;在调试模式下,计数器可以被冻结。

2025-01-01 16:01:31 1340

原创 STM32-笔记25-IWDG独立看门狗

在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。无论何时,只要在键寄存器IWDG_KR中写入0xAAAA, IWDG_RLR中的值就会被重新加载到计数器,从而避免产生看门狗复位。IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向 IWDG_KR寄存器中写入0x5555。

2024-12-31 21:24:13 1055

原创 STM32-笔记24-智能开关垃圾桶盖

初始化状态位为关盖状态,当有物品挡在超声波前面的时候,调用开盖函数,在开盖函数中判断状态位是否是CLOSE状态,如果是,则执行开盖函数,否则不执行,此时这里状态位是CLOSE所以,执行开盖函数,并且把状态位置为OPEN,在下次执行if语句的时候,如果满足if里的条件,则会调用开盖函数,但是由于状态位为OPEN,所以此时不会执行开盖函数中的代码。复制项目文件夹19-串口打印功能,重命名为26-智能感应开关垃圾桶盖项目。1、问题:当手一直放在超声波前面的时候,每隔2秒蜂鸣器会响一下。在代码中出现的bug。

2024-12-31 14:37:48 694

原创 STM32-笔记23-超声波传感器HC-SR04

HC-SR04 工作参数:• 探测距离:2~600cm• 探测精度:0.1cm±1%• 感应角度:

2024-12-31 13:04:42 651

嵌入式开发-CAN协议

嵌入式开发-CAN协议

2025-01-17

空空如也

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

TA关注的人

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