STM32
这被禁忌的游戏
这个作者很懒,什么都没留下…
展开
-
低通滤波函数实现
在做的项目中需要通过PWM驱动IGBT来控制负载功率,如果PWM频率很高,电流采样基本不受影响。但是IGBT的开关频率高会引起更多的开关损耗,所以降低了PWM频率,但此时电流会是接近于PWM信号的波形,无法准确采集。所以硬件上增加了RC低通滤波,截止频率在5Hz以下,然后软件上通过低通滤波算法进一步将电流拉平。可以看到滤波器2的曲线响应速度是快于滤波器1的,也就是采样速度越快,越精确,响应越快。实测在ADC 1K的采样频率下,电流采样滞后在600ms以内。下面是C#的实现代码。原创 2024-09-05 19:50:55 · 429 阅读 · 0 评论 -
Modbus协议数据解析
Modbus通讯协议 Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。 Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信原创 2022-04-22 16:39:05 · 9385 阅读 · 0 评论 -
NTC温度以及模拟量湿度传感器计算公式
温度计算float CalTemp(float Vol){ float Rt = 0; float Rp = 10000; float T2 = 273.15 + 25; float Bx = 3950; float Ka = 273.15; float temp = 0; Rt = (3.3 - Vol) * 10000 / Vol;//3.3为电阻未分院的电压值,10000为与NTC对应的另一个10K电阻 printf("%.3f\n", Rt); temp = 1 / (1原创 2021-09-26 16:47:14 · 1724 阅读 · 0 评论 -
SPL06-001 驱动代码
1. .h文件需要定义的部分/***************************************************************************宏定义**************************************************************************///气压测量速率(sample/sec),Background 模式使用#define PM_RATE_1 (0<<4)原创 2021-06-07 11:31:44 · 2953 阅读 · 12 评论 -
stm32f415虚拟串口,电脑可以识别,但端口打开失败
1、USBD_CDC_Init(usbd_cdc.c文件)中找到USBD_malloc调用的地方,改成静态分配;如下图:屏蔽掉红框内容,添加绿框内容2、USBD_CDC_DeInit中注释掉USBD_free函数的调用;屏蔽掉红框内容原创 2021-04-22 14:30:05 · 1585 阅读 · 2 评论 -
HAL库串口FE帧错误处理方法
在串口被初始化以及开启接收之后,在串口悬空状态下很容易出现FE帧错误,但是HAL对于错误的处理会造成程序陷入死循环,不断进入接收中断。FE的解释如下:FE: 帧错误当一个不同步现象、 强噪声或一个断开符号被检测到的时候, 这个位有硬件置 1。由软件向 USART_ICR 寄存器的 FECF 位写 1, 可以清除这个标志。 在智能卡模式中发送数据时, 当重发尝试的次数达到上限, 由没有收到成功的回应(卡一直响应NACK) 的时候, 这个位也会被硬件置 1。如果 USART_CR1 寄存器中..原创 2020-10-22 14:31:37 · 7401 阅读 · 0 评论