单片机
文章平均质量分 87
Sense_long
这个作者很懒,什么都没留下…
展开
-
modbus流量计数据解析(4个字节与float的换算)
通过modbus协议从流量计中读取数据后,需要将获得的字节数据合成float类型。以天信流量计为例:如何将字节数据合并成float类型呢?这里总结了三种方法。以温度值41 A0 00 00为例。原创 2024-06-18 21:08:34 · 563 阅读 · 0 评论 -
嵌入式知识点总结——串口、RS232、RS485
串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。原创 2023-09-06 19:36:48 · 728 阅读 · 1 评论 -
步进电机简单使用:STM32 PWM输出固定数目的脉冲数(基于CubeMX)
本文讲解步进电机驱动原理,以及如何通过CubeMX实现快速配置PWM来输出固定数目个脉冲原创 2023-09-01 12:35:15 · 7140 阅读 · 5 评论 -
STM32CubeMX配置ADC采样(轮询、中断、DMA)
STM32CubeMX能够极大减小STM32外设配置的工作量,本文介绍如何利用STM32CubeMX配置ADC采样,记录了作者学习过程中遇到的问题及解决办法原创 2023-01-20 18:54:08 · 20693 阅读 · 7 评论 -
手把手教你FreeRTOS源码详解(二)——任务管理
vTaskDelay函数的本质是调用prvAddCurrentTaskToDelayedList,将任务添加至对应的延时、阻塞链表,同样,首先将任务从就绪列表中移除,移除后并所移除的就绪列表中是否还有其余就绪的任务,若剩余就绪任务数为0,则清除该列表的就绪标志位。如果阻塞时间不为最大时,首先计算出唤醒任务的时间,xConstTickCount为执行任务prvAddCurrentTaskToDelayedList的时间,xTicksToWait为延时时间,xTimeToWake为唤醒时间。原创 2022-12-22 16:47:18 · 3325 阅读 · 3 评论 -
手把手教你FreeRTOS源码解析(一)——内存管理
FreeRTOS中一共有5种内存分配的方法,分别在文件heap_1.c,heap_2.c,heap_3.c,heap_4.c,heap_5.c种。虽然标准C库中的 malloc()和 free()也可以实现动态内存管理,但是它有以下缺陷:1、在小型嵌入式系统种效率不高。2、线程不安全。3、具有不确定性,每次执行的时间不同。4、会导致内存碎片。原创 2022-12-11 18:19:45 · 6053 阅读 · 1 评论 -
解决esp32同时使用wifi、蓝牙内存不足的情况(基于Arduino框架)
解决esp32同时使用wifi和蓝牙内存不足的问题。原创 2022-12-08 14:09:49 · 5677 阅读 · 4 评论 -
Lwip TCP/UDP客户端、服务器详解
一、TCP客户端 tcp客户端实现是比较简单的,大致分为以下几个步骤: (1)申请套接字。 (2)绑定远端服务器的ip地址和端口。 (3)连接远端服务器。 (4)接收和发送数据。现象: 电脑作为TCP服务器,单片机为TCP客户端来连接服务器,通过电脑服务端往单片机发送112233、555533,单片机接收到消息后将消息原路发送给电脑。部分函数解析:(1)int socket(int domain,int type,int protocol)该函数用于申请套原创 2022-12-06 18:35:31 · 6914 阅读 · 4 评论 -
阿里云物联实现不同设备间的通信
最近在做项目的时候,发现阿里云物联同一个产品下的设备只能订阅以其设备名命名的topic,无法实现设备之间的通讯,我捣鼓了许久,终于解决了这个问题。原创 2022-11-29 20:58:01 · 2316 阅读 · 3 评论