- 博客(286)
- 资源 (12)
- 收藏
- 关注
原创 电脑动态库dll修复工具
链接: https://pan.baidu.com/s/14SxSYgOSO96EzcKQZqNG7A。通过网盘分享的文件:DirectX_Repair_3.7_Enhanced_XiaZaiBa.zip。
2024-12-03 09:37:59
209
原创 Modbus通信协议中ASCII模式与RTU模式详解
Modbus协议是一种串行通信协议,用于连接工业电子设备。它定义了设备之间如何传输信息,包括数据的格式、传输速度、错误检测等。Modbus协议广泛应用于各种工业自动化系统,如PLC、传感器、执行器等。Modbus协议的基本结构包括主站和从站。主站发起通信请求,从站响应请求并返回数据。通信过程中,数据以帧的形式传输,每帧数据包含地址、功能码、数据域等信息。
2024-11-28 10:38:46
1432
原创 STM32F407ZGT6-HAL-USART1串口
2、keil工程配置添加Use Micro LIB。tx、rx引脚配置保持默认即可;需要包含stdio.h头文件。
2024-10-22 10:51:24
472
原创 STM32F407ZGT6-HAL-FreeRTOS-信号量示例
A:发送任务优先级高,先执行。连续3次释放二进制信号量,只有第1次成功B:发送任务进入阻塞态C:接收任务得以执行,得到信号量,打印OK;再次去获得信号量时,进入阻塞状态 在发送任务 的vTaskDelay退出之前,运行的是空闲任务:现在发送任务、接收任务都阻塞了D:发送任务再次运行,连续3次释放二进制信号量,只有第1次成功E:发送任务进入阻塞态F:接收任务被唤醒,得到信号量,打印OK;再次去获得信号量时,进入阻塞状态即使发送任务连续释放多个信号量,也只能成功1次。
2024-09-23 14:39:35
928
原创 FreeRtos-重要概念
一个任务函数在执行的时候,可能会被其他高优先级的任务抢占CPU,也可能被任何一个中断的ISR函数抢占CPU。另一个称为“中断级”,即带后缀“FromISR”的函数或带后缀“FROM ISR”的宏函数,中断级API函数也被称为中断安全API函数。任务的优先级是编程者在软件中赋予的,任务的优先级数字越低表示优先级越低,所以任务的最低优先级为0。任务只有在没有ISR运行的时候才能运行,即使优先级最低的中断也可以抢占高优先级的任务的执行,而任务不能抢占ISR的运行【这一句需要重点解释】在中断的ISR里调用。
2024-09-20 10:59:00
419
原创 HAL库中的三种延时函数HAL_Delay、vTaskDelay和vTaskDelayUntil的区别
相对延时函数:相对延时是指每次延时都是从任务执行函数vTaskDelay()开始,延时指定的时间结束;精度没绝对延时准确,延时时释放CPU。指将整个任务的运行周期看作一个整体,适用于需要按照一定频率运行的任务,精度很准,延时时释放CPU。阻塞型延时,实现方式是通过死循环方式实现的,不会释放掉cpu,会造成其他低优先级任务无法执行。3、vTaskDelayUntil() 绝对延时函数。2、vTaskDelay() 相对延时函数。
2024-09-19 16:20:40
1088
原创 STM32L051K8U6-HAL-串口中断控制灯闪烁速度
示例:链接:https://pan.baidu.com/s/1u6FamKgZhvcEsFAdgGeaww。4、 配置灯引脚属性为输出模式。
2024-09-12 10:55:25
465
原创 汇编基础指令
BL main;Branch and Link,先把返回地址保存在LR寄存器里再跳转。读地址“R1+4”,得到的4字节数据存入R0。把R0的4字节数据写"R1+4"CMP RO,R1;结果保存在PSR(程序状态寄存器)B main;Branch,直接跳转。2、写内存:Store。1、读内存:Load。
2024-08-21 15:36:04
435
原创 STM32L051K8U6-HAL-LED闪烁设计
示例:链接:https://pan.baidu.com/s/1CetQg5oD0uAc-9VfiihjsQ。//切换 翻转电平。4、 配置灯引脚属性为输出模式。生成代码:编写while里面的代码。
2024-08-07 14:50:27
271
原创 STM32L051K8U6-开发资料
STM32L051测试 (四、Flash和EEPROM的读写)-云社区-华为云 (huaweicloud.com) STM32L051测试 (四、Flash和EEPROM的读写) - 掘金 (juejin.cn)STM32L0 系列 EEPROM 读写,程序卡死?_stm32l0片内eeprom_stm32l0 eeprom-优快云博客
2024-08-03 11:57:12
354
原创 STM32定时器如何通过预分频和重装载设置时间间隔
((1+TIM_Prescaler )/168M)*(1+TIM_Period )=((1+35999)/168M)*(1+2000)=1秒*/公式:TIM_CLK = CLK / PSC 【见上图分析】1、系统时钟CLK经过PSC预分频器得到定时器时钟TIM CLK。定时器中断触发时间 = 计数一次需要的时间 * 重装载值。2、计算计数器每计数一次。计数一次需要的时间 =3、重装载值溢出时间。
2024-07-23 11:11:21
690
原创 STM32-Cube开发资源
全网最完整最干练的CubeMX、CubeIDE STM32开发教程 拥抱高效Cube开发方式【3.1】—Kevin带你读《STM32Cube高效开发教程基础篇》_哔哩哔哩_bilibili Kevin_WWW的个人空间-Kevin_WWW个人主页-哔哩哔哩视频 (bilibili.com)
2024-07-16 16:42:45
308
原创 STM32程序启动过程
(2)然后执行复位中断,在复位中断服务程序中跳转 C/C++标准实时库的main函数(__main),完成用户堆栈等的初始化后,跳转.c 文件中的main函数(真正的用户main函数)开始执行程序。(1)首先对栈和堆的大小进行定义,并在代码区的起始处建立中断向量表,其第一个表项是栈顶地址(32位),第二个表项是复位中断服务入口地址;
2024-06-13 16:51:03
918
原创 GPIO八大模式
GPIO主要有八种模式,分别为推挽输出、开漏输出、复用推挽输出、复用开漏输出、浮空输入、上拉输入、下拉输入、模拟输入。下面先解释一下,图1中右侧的保护二极管和左侧的寄存器。注意:输出模式没有上拉和下拉的区分在这里可以将P-MOS管假想为NPN,N-MOS假想为PNP,这样就比较好去理解这个电路推挽电路当Vin电压为V+时,上面的N型三极管控制端有电流输入,Q3导通,电流方向如下图。经过上面的N型三极管提供电流给负载R,这就叫「推」。经过下面的P型三极管提供电流给负载,这就叫「挽」。
2024-06-11 14:41:50
258
原创 NPN和PNP三极管开关
(2)图2-PNP三极管开关电路:有时候我们也会用PNP的三极管搭建三极管开关电路,当如图输入低电平时,三极管B和E间的电压小于开启电压(负值),这时三极管饱和导通;为了让三极管C和E间的电压尽可能小,三极管处于一个深度饱和的状态,一般三极管基极的电流取集电极电流的1/10,所以基极电流为:IB=IC/10=2mA;(2)导通电压是指PN结导通以后两端的电压降,硅管与锗管的导通电压分别为0.7V与0.5V普通三极管,导通电压0.5~0.7V,符合二极管的特性。当使用三极管当电子开关时,对于控制端输入信号,
2024-06-11 13:33:02
4311
原创 常用的三种软件架构
每个模块可以注册并监听不同的事件,系统通过事件管理机制实现模块之间的通信和协作。将系统划分为多个服务,每个服务提供一组相关的功能。适用于需要模块化和可重用性的项目。1、每个服务负责一组明确定义的任务,模块通过调用服务接口来执行特定功能。2、这种架构有助于模块之间的松耦合,提高了系统的可维护性和可重用性。是一种将嵌入式系统分为多个层次的设计方法。:与硬件相关的初始化和配置,确保系统在目标硬件上正确运行。1、模块可以监听和响应特定事件,而不需要主循环的轮询。不同的软件架构适用于不同的嵌入式项目需求。
2024-06-11 10:05:00
690
原创 串口波特率
随着波特率的提高,信号的时钟周期变得更短,数据的传输时间也变得更短,这使得数据在传输过程中更容易受到干扰和噪声的影响,从而导致误码率的增加。当波特率过高时,数据传输中可能会出现一些误差,导致数据传输的可靠性下降。中每秒钟传输的二进制位数(即波特率=波特/秒)。虽然提高波特率可以加快。提高波特率会带来更高的数据传输速度,但同时也会增加传输误码率。速度,但并不是波特率越高越好。
2024-03-09 11:17:05
934
原创 相机的常见参数分析
形象的用上图表示,像元尺寸就是这个图像中每一个黑色格子所表示的大小,单位一般都是微米。图像是由像素所组成的,像素的多少表明摄像机所含有的感光元件的多少。是指数字成像系统中,每个像素的物理大小,上图中相机单个像素的物理尺寸时2.4um。是指数字成像系统中,每个像素的物理大小,上图中相机单个像素的物理尺寸时2.4um。M是mega的意思,也就是兆的意思,P是像素的意思。图像大小一定的情况下,像元尺寸越大,分辨率越低,清晰度越低。像素就是这张图像中的所有黑格子的数量。由长边和短边,即可算出靶面尺寸。
2024-02-27 16:48:18
3642
原创 景深有什么用
举个例子,当我们对准一个人聚焦拍摄时,在这个人近相机方向上和远相机方向上的一段距离内,所有景物都会相当清晰。在前面的例子中,如果人没在景深之内,那么人看起来就会模糊;如果我们希望人和牌楼都清楚,就需要将人和牌楼都安置在景深之内,那么该怎么做呢?对于定焦镜头而言,我们可以通过光圈和对焦距离改变景深。当相机拍摄人物时,在一定区域范围内的图像都是清晰的,而这一段成像清晰的距离就是。:在超焦距范围内,对焦距离越近,景深越小;对焦距离越远,景深越大。:光圈越小,景深越大;光圈越大,景深越小。:焦距越长,景深越小;
2024-02-27 15:34:24
444
原创 VSCode搭建STM32开发环境
2、安装VSCodeUserSetup-x64-1.78.2.exe软件。4、在环境变量中部署mingw64编译环境。3、配置Keil Assistant插件。3、 在VSCode中安装必要的插件。
2023-11-30 12:13:13
937
1
原创 Qt:解决跨线程调用socket/IO类,导致报错的问题
Qt有很多IO相关的类,比如说QTcpSocket、QFile,总的来说,在Qt的框架内使用,还是非常方便的。这也是有道理的,很多时候真的是设计问题导致的,因为设计失误出现了不应该有的跨线程操作。当然也可以用信号和槽封装一下,但是这样会涉及很多不必要的代码,我个人觉得也太过于麻烦。要解决这个问题,直观的说就是不要跨线程操作,网上也有很多类似的说明。
2023-11-30 09:16:56
1101
原创 STM32内存介绍
经历了从NOR Flash到NAND Flash再到现在的eMMC的发展。为了便于使用和大批量生产,ROM进一步分为了4种类型:PROM、EPROM、EEPROM和Flash。PROM只能被编程一次,EPROM可擦写可编程且可达1000次,EEPROM是一种掉电后数据不丢失的存储芯片,而。
2023-11-22 16:41:26
500
原创 释放Sqlite数据库占用的多余空间
当删除sqlite数据库中的数据之后,会发现内容确实删除掉了,但是sqlite数据库占用的磁盘大小没有缩小,那是因为,删除数据后,未使用的磁盘空间被添加到一个内在的“空闲列表”中用于储存你下次插入的数据,磁盘空间并没有丢失,但是也不向操作系统返回磁盘空间,1、利用navicat删除数据之后,执行VACUUM语句即可。2、在自己的代码中执行。
2023-10-10 14:14:40
1446
原创 Python学习笔记
2、if 、while、def和class这样的复合语句,首行以关键字开始,以冒号(:)结束,该行之后的一行或者多行代码构成代码组。4、python语言中进行的四则运算时,凡是有小数参与到运算中,哪怕计算结果为整数,也是默认保留小数点后一位的0。5、选择语句: if if .....else if ....elif....else。3、在python中无论输入的内容是数字还是字符,都将被作为字符串类型读取。1、缩进相同的一组语句构成一个代码块,称之为代码组。8、range()函数。
2023-10-08 09:16:32
676
超级system命令嵌入代码
2018-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人