- 博客(10)
- 收藏
- 关注
原创 STM32之充电桩的学习与开发
随着城市化进程加快以及绿色出行理念的普及,电动自行车因小巧灵活、低碳环保,成为很多人日常出行的首选。:充电桩;具备智能识别功能,可根据不同电动车型号自动调整充电功率,确保充电安全。同时具有过充保护、过载保护、过流保护、漏电保护、短路自停等功能,部分还采用防水设计;:用户一般可通过微信或支付宝扫描车桩上的二维码进行支付后启动充电;
2025-07-25 15:51:59
709
原创 FreeRTOS之信号量与互斥量
互斥信号量其实就是一个拥有优先级继承的二值信号量,在同步的应用中 (任务与任务或中断与任务之间的同步)二值信号量最适合。互斥信号量适合用于 那些需要互斥访问的应用中。在互斥访问中互斥信号量相当于一个钥匙,当任务 想要使用资源的时候就必须先获得这个钥匙,当使用完资源以后就必须归还这个 钥匙,这样其他的任务就可以拿着这个钥匙去使用资源。
2025-07-02 14:18:51
572
原创 FreeRTOS操作系统之消息队列
消息队列是一种用于任务间通信的机制,允许任务和中断之间传递固定大小的数据项目。队列采用先进先出(FIFO)或后进先出(LIFO)存储方式,并支持阻塞机制,当队列为空或满时任务可以等待一定时间。FreeRTOS中通过队列控制块管理队列状态,提供多种API函数进行创建、删除、发送和接收操作。发送消息可以是常规或紧急方式,接收时可以选择是否删除消息。使用队列时需注意数据拷贝机制和内存分配,确保消息大小匹配和操作合法性。
2025-06-30 14:17:03
885
原创 FreeRTOS基本学习之任务管理
任务栈其实就是一个预先定义好的全局数组,数据类型为 StackType_t,大小由 TASK1_STACK_SIZE 这个宏来定义,默认为 128,单位为 字,即 512 字节,这也是 FreeRTOS 推荐的最小的任务栈。在 FreeRTOS 中, 凡是涉及到数据类型的地方,FreeRTOS 都会将标准的 C 数据类型用 typedef 重新取一个类型名。任务是一个独立的、无限循环且不能返回的函数。在多任务系统中, 任务的执行是由系统调度的。
2025-06-29 19:21:02
1024
原创 MQTT协议
消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为远程连接设备提过实时可靠的消息服务,作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。
2025-06-20 19:58:29
706
原创 硬件驱动之Lm75温度传感器-基于I2c协议控制
3.I2c时序 单字节写:连续写: 单字节读: 连续读: 一主机多从机的通信模式 START: SCL 线为高电平期间,SDA 线由高电平向低电平的变化表示起始信号;STOP: SCL 线为高电平期间,SDA 线由低电平向高电平的变化表示终止信号。 lin u x 系 统 将 有 关I2 C 的 驱 动 程 序 称 为 I2C子系统,其结构如图所示。主要 由三个部分组成: 1. I2 C 设 备 驱 动 : 顾 名 思 义 , 就 是 在 d e v 目 录 下 的 设 备 下 的 设 备 , 这 段
2025-04-18 16:11:27
1035
原创 硬件驱动之hcsr04超声波测距传感器
VCC:电源正极,通常接5V。Trig:触发信号输入,用于启动测距。Echo:回响信号输出,用于接收测距结果3。GND:电源负极,接地。
2025-04-08 15:24:27
306
原创 硬件驱动之ds18b20传感器应用
传感器指标与相关信息概述DS18B20数字温度传感器供给 9-Bit到12-Bit的摄氏温度测量精度和一个用户可编程的非易失性且具有过温存低温触发报警的报警功能。DS18B20承受的1-Wire通信即仅承受一个数据线〔以及地〕与微把握器进展通信。该传感器的温度检测范围为-−55∘C至+125∘C,并且在温度范围超过−10∘C至85∘C之外时还具有+−0.5∘C的精度.此外,DS18B20可以直接由数据线供电而不需要外部电源供电。
2025-04-08 14:45:51
346
原创 硬件驱动之DST11温湿度传感器
define SET_DQ_OUT (*(pGPFBase+0) = ((*(pGPFBase+0) & ~(0x3)) | (0x1))) //设置输出#define SET_DQ_IN (*(pGPFBase+0) = ((*(pGPFBase+0) & ~(0x3)))) //设置输入#define SET_DQ_HIGH (*(pGPFBase+1) = ((*(pGPFBase+1)) | (0x1))) //高电平。
2025-04-08 12:55:44
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人