- 博客(55)
- 收藏
- 关注
原创 MQTT详讲-小白入门
MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。用来在保证消息的可靠传输,如果设置为1,则在下面的变长中增加MessageId,并且需要回复确认,以保证消息传输完成,但不能用于检测消息重复发送。(3)RETAIN: 发布保留标识,表示服务器要保留这次推送的信息,如果有新的订阅者出现,就把这消息推送给它,如果设有那么推送至当前订阅者后释放。(1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
2025-06-10 15:26:51
842
原创 硬件电路设计-开关电源设计
这里以杰华特的JW5359M 开关电源为例,介绍各个部分的功能电路。当EN引脚电压低于0.4V时,整个稳压器关闭,稳压器消耗的电源电流降至1μΑ以下。
2025-06-07 15:19:16
1133
原创 硬件电路设计—电平转换
这种方式的优点:成本低;劣势:低电平下会被三极管的饱和管压降抬高(通常在 0.1v 左右,不影响通信);开关速度不够,超过 460800 波特率时不建议用这种方式。在双方串口电平差别不大的情况下,并且低电压那端的芯片的引脚耐压值大于高电压输入端电压时,可使用串联一个1K电阻的方案,进行连接。在串口波特率不高的情况下(如 115200),可以通过 NPN 晶体管的方式进行电平转换。对成本不敏感的话,优先考虑用电平转换芯片,无论速度,可靠性都很完美。
2025-06-07 10:31:04
187
原创 FreeRTOS-任务控制块/配置文件
tskTaskControlBlock(简称 TCB)是 FreeRTOS 中最重要的数据结构之一,用于存储和管理任务的所有状态信息。它就像任务的 “身份证”,包含了任务的优先级、堆栈指针、状态等核心数据。临界区:通过 taskENTER_CRITICAL() 和 taskEXIT_CRITICAL() 保护关键代码段,防止中断或任务抢占。优势:无需创建额外对象,直接向任务发送通知,开销更小(约为信号量的 1/3)。作用:保存任务上下文切换时的现场(如寄存器值),是任务恢复执行的关键指针。
2025-05-30 10:00:00
283
原创 搭建MQTT服务器
帮助文档地址: https://www.emqx.io/docs/zh/v5.0/admin/api.html#%E8%AE%A4%E8%AF%81。:18083/api-docs/index.html来查看API文档,同时也可以直接在Swagger UI 上尝试执行一些 API。客户端授权页面可以配置每个客户端(设备)的主题发布,订阅权限。服务器地址填写ip地址。可以看到此时MQTT客户端已经可以和控制台进行通信,说明MQTT连接没有问题。1.首先进行Navicat客户端的连接测试,看是否可以正常连接。
2025-05-29 11:37:18
1084
原创 QT6搭建和使用MQTT
编译成功文件夹里会生成一个build的文件夹,里面包含Desktop_Qt_6_5_3_MinGW_64_bit-Release这个文件。连接EMQ 免费提供的公共 MQTT Broker,基于 EMQX Platform 构建。点击运行,如果之前配置没有出错的话,这里可以出现运行界面。libQt6Mqtt.a Qt6Mqtt.prl文件。这里使用的是VScode的终端,使用cmd也可以。代理:broker.emqx.io。SSL/TLS 端口:8883。SSL/TLS 端口:8883。
2025-05-29 11:33:15
827
原创 使用MQTTX软件连接阿里云
开始订阅一共需要订阅两个,分别是云端响应属性上报(查看平台是否接收到数据),设备属性设置(查看平台下发的数据)。还不行的话,再检查一下上面的数据有没有填错,数据建议直接复制,不要手敲。这篇文章里有详细的创建过程,这里就不再重复了,需要的可以点击了解一下。可以看到软件上有平台接收成功的提示,并且平台上也将数据进行了修改。修改数据后,点击设备观察MQTTx有没有接收到。这里填写设备属性上报的topic。属性上报:设备将数据上报给平台。属性设置:平台将数据下发给设备。可以看到有正确的接收到数据。
2025-04-03 10:10:29
871
原创 ESP32-TF卡的使用
在ESP - IDF中对FATFS进行了封装和适配,通过esp_vfs_fat组件来挂载和操作FAT系统,并提供了一套文件系统接口,这些接口基于标准的 C 库文件操作函数(如 fopen、fread、fwrite 等),并在底层进行了适配和扩展。通过这些接口,开发者可以使用统一的方式操作不同的文件系统,而无需关心具体的实现细节。如果想使用FATFS原生的函数只需包含ff.h即可。关于FATFS这篇文章里有详细的介绍,有兴趣可以看一下。
2025-04-02 11:55:58
849
原创 FATFS文件操作系统
FATFS 是一个完全免费开源的 FAT/exFAT 文件系统模块,它完全用标准 C 语言(ANSI C C89)编写,它支持 FATl2、FATl6 和FAT32。
2025-03-13 14:03:59
590
原创 LDLRR410静态雷达使用
若雷达在设置的区域内检测到的目标数量M大于N,则按照目标的径向距离输出N个最近的目标。如检测到的目标数M小于N,则按照距离雷达由近到远的顺序输出实际检测到的M个目标。其中long2为Y轴最远距离,Lat2为X轴左侧最远的距离。long1为Y轴最近距离,Lat为X轴右侧最远距离。要设置的矩形区域为6*20,最大输出目标个数为63。2点的坐标为(20,-3)。Max OutputTargetNum: 设置的检测范围内允许输出的最大目标个数 N。将数据按照上面表格的内容填入进行计算出最终的数据。
2025-03-13 14:03:25
682
原创 linux-进程
进程是处于活动状态的程序,linux系统是多任务操作系统,可同时进行多个程序完成多项工作。可通过ps -e列出所有的进程,-f 显示进程的全部信息,-l以长格式显示进程,-r只显示正在运行的进程。linux系统中每一个进程都有一个进程号(PID),进程号是一个正数,用于唯一标识系统中的某一个进程。
2025-03-13 14:00:40
781
原创 Windows配置添加右键菜单——在VSCode中打开
添加图标,回到注册表编译器里在vscode文件夹里新建一个名为"Icon"的文件,注意第一个字母"I"大写,不然图标出现不了。在桌面上找到 VScode的图标,右键找到属性,点进去。这一行就是他的可执行路径了。修改文件的数值为VS code可执行路径并在后面加上"%1"。如果安装的时候没有选中的话,可以通过注册表来手动进行添加。可以看到图片已经出现,并且可以正常的转到VS Code里。到这时就可以看到,右键出现VS Code的快捷方式了。可以在装VSCode的时候选中这两个选项。右击右边的文件,进行修改。
2025-02-24 11:38:25
738
原创 LVGL教程1-手把手移植LVGL
在GUI_APP文件夹里放入上一步裁剪好的demos文件夹,在lvgl(最里面的那个文件)文件夹里放入其余的文件。打开lv_port_disp_template.c和.h文件的条件编译指令。编写或移植一个定时器中断的函数,在回调函数中放入该函数。将lv_conf_template.h重命名为lv_conf.h。1.这里将屏幕触摸当成输入,其余的删掉(鼠标,键盘,编码器,按键)。在lv_conf.h文件里将LV_USE_DEMO_STRESS 置一。下面对应的函数类似,只保留触摸的,其余的删掉。
2025-02-21 15:56:23
786
原创 STM32-启动文件
STM32 启动文件由 ST 官方提供,由汇编编写,是系统上电复位后执行的第一个程序。启动文件主要做的工作。1.初始化堆栈指针 SP = _initial_sp2.初始化程序计数器指针 PC = Reset_Handler3.设置堆和栈的大小4.初始化中断向量表5.配置外部 SRAM 作为数据存储器(可选)6.配置系统时钟,通过调用 SystemInit 函数(可选)7.调用 C 库中的 _main 函数初始化用户堆栈,最终调用 main 函数。
2025-02-05 13:40:54
1701
原创 git使用-小白入门2
每个分支都有自己的最新代码,可以同时进行完全不同的作业。在这个状态下像正常开发那样修改代码,执行git add命令进行提交的话,代码会提交至feature-A分支。在feature-A里已经实现完毕,要把他合并到主干分支(master)里。在master分支前面有一个’*'号表示当前位于的分支。从 master 分支创建 feature-A 分支和 fix-B 分支。可以看到成功创建了feature-A的分支并当前位于这个分支下。通过这个命令可以将分支名列表显示,同时可确定当前所在分支。
2025-01-14 11:02:08
361
原创 git使用-小白入门
版本库⼜名仓库,英⽂名repository,你可以简单理解成⼀个目录,这个目录⾥⾯的所有⽂件都可以被Git管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。git status命令可以让我们时刻掌握仓库当前的状态,上⾯的命令告诉我们,readme.txt被。简单解释⼀下git commit命令,-m后⾯输⼊的是本次提交的说明,可以输⼊任意内容,当然。我们已经成功地添加并提交了⼀个readme.txt⽂件,现在,是时候继续⼯作了,于是,我。
2024-12-27 15:41:57
1011
原创 QT-手把手制作一个串口助手
每点击一下刷新按键,就会进入一下该函数,首先会清除com_com下拉框的内容。在MainWindow::MainWindow()函数里进行串口接收与函数的链接,当串口有数据接收时自动进入到关联的函数里运行。当然点每个按键都是不管用的,因为我们还没有写具体的代码,下面开始编写各按键的功能。首先设置主窗口的大小,点击画布,然后到右下角的属性编译器里进行修改大小。在private:里定义一个发送模式的标志位,默认为0,字符串发送。在private:里定义一个显示模式的标志位,默认为0,字符串显示。
2024-12-18 16:55:34
2139
原创 QT打包成EXE文件
双击进去,找到release文件下的exe文件。注意此时该文件是不完整了,只能在你电脑上运行,在其他电脑上运行不了,其他电脑上没有该环境。然后该文件夹里会出现很多文件。结束完成后会在刚指定的路径下生成最终的文件,文件名以_boxed.exe结尾。该下图这个步骤运行,然后回到build文件里。该文件就是最终可脱离这台电脑执行的文件了。在3里面复制新建文件夹里的所以文件到这。将上面找到的exe文件放到该文件夹下。正常情况下,在该文件下有两个这文件。cd 进入到新建文件夹的路径下。此时该文件夹会多出来这个文件。
2024-12-18 16:51:53
514
原创 CAN通信
STM32内置bxCAN外设(CAN控制器,bx表示支持CAN扩展格式),支持CAN2.0A和CAN2.0B,可以自动发送CAN报文和按照过滤器自动的接收指定的CAN报文。波特率最高可达1M位/秒3个可配置优先级的发送邮箱。2个3级深度的接收FIFO14个过滤器支持时间触发唤醒,自动离线恢复,自动唤醒,禁止自动重传,接收FIFO溢出处理方式可配置,发送优先级可配置,双CAN模式。
2024-11-15 13:49:59
1419
原创 使用Linux连接阿里云
将BLD_CFLAGS := $(CFLAGS) -Wall -Werror注释,并添加BLD_CFLAGS := $(CFLAGS) -Wno-error。打开demos文件夹里的mqtt_basic_demo.c文件,将这4个信息修改为自己的。将sub_topic改为自己的要订阅的主题,格式为自定义Topic(/这篇文章有详细的创建设备的步骤,这里就不啰嗦了。1.将生成的SDK放到linux中,并解压。下载SDK,按照图中所选的进行生成SDK。pub_payload为发送消息的内容。
2024-11-01 17:12:23
1317
1
原创 FreeRTOS信号量
信号量是一种实现**任务间通信的机制**,可以实现任务之间**同步或临界资源**的互斥访问,常用于协助一组相互竞争的任务来访问临界资源。
2024-11-01 11:20:21
1076
原创 CRC-校验
CRC(Cyclic Redundancy Check,循环冗余校验)是一种用于检测数据传输错误的校验方法。它通过计算数据的多项式,并将结果附加到数据的末尾,接收方在接收到数据后,重新计算CRC值并与发送方的CRC值进行比较,以此来检测数据在传输过程中是否发生错误。
2024-10-21 17:15:51
5063
原创 linux-字符串函数使用
大于时返回一个正值。char *strstr(const char *str1, const char *str2)—在字符串str1中查找第一次出现字符串str2的位置,并返回指向该位置的指针。char *strchr(const char *s, int c) —在字符串s中查找第一次出现字符c的位置,并返回指向该位置的指针。strncpy(str1,str2,num)—将字符串str2前num个数据拷贝到str1。strncat(str1,str2,num)—将str2前num个放到str1后面。
2024-09-26 11:18:47
1081
原创 FreeRTOS-消息队列
队列是一种任务到任务,任务到中断,中断到任务的一种数据交流机制。队列中每一个数据叫做队列项目。可以储存的做大数量的队列项目叫做队列长度。
2024-09-04 15:21:55
1086
原创 linux-下载网络电影
如果有的网页上的地址不管用,可以使用-u来获取真实的url,然后再进行下载。这时会发现视频和音频是分开的,要想合并在一块需要下载安装FFmpeg。可以结合之前的那个文章将视频直接下载到U盘上。这时在执行下载命令就能直接下载完整的视频了。如果要下载480P的使用第一个下载链接。这样会把这个合集里的视频全部给下载了。-o 后面跟视频要保存的地址。
2024-08-22 19:22:41
120945
原创 linux-挂载u盘,添加快捷方式
4.右击桌面上的.desktop文件,选择“属性”,然后在“权限”标签页中勾选“允许作为程序执行”。替换Name、Exec和Icon的值为你想要的快捷方式名称、目标文件路径和图标路径。3.在弹出的窗口中,选择桌面或你想要创建快捷方式的位置。2.右键点击该文件,选择“发送到”或“创建快捷方式”。/dev/sda1需要替换成你自己的U盘分区设备名。1.在文件管理器中找到你想要创建快捷方式的文件。4.点击“确定”或“创建”,快捷方式就会被创建。
2024-08-22 14:52:42
424
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人