- 博客(13)
- 收藏
- 关注
原创 stm32防忘关火神器
这个模型将发送消息的客户端(发布者)与接收消息的客户端(订阅者)分离,它们之间的通信通过MQTT代理(也称为MQTT服务器或MQTT broker)进行。综上所述,MCU与阿里云物联网通过MQTT协议实现通信的过程是一个基于主题的发布/订阅模型,其中MCU可以作为发布者或订阅者,与MQTT代理和其他客户端进行灵活的通信。在实际应用中,MCU可能需要与阿里云物联网平台进行更复杂的交互,如设备注册、属性上报、命令下发等,这些都可以通过MQTT协议的不同主题和消息格式来实现。
2025-03-24 11:07:40
306
原创 matlabFDA工具箱信号采样率与滤波器采样率的关系
实验中发现,假设信号采样率为200k Hz,降采样为10k Hz,若使用采样率为20k Hz的FIR低通滤波器处理信号所得到的波形要比使用采样率为10k Hz的滤波器更平滑,且时域延迟更大。在数字滤波器设计中,所有的频率参数(如截止频率。)通常是相对于滤波器采样率。
2025-02-07 15:14:28
277
原创 HAL库接收中断结合空闲中断接收不定长数据之排雷
加不加对打印结果影响很大,加上好像来不及处理下面的代码比如printf("RxCounter: %d, Data: %.*s\n", RxCounter, RxCounter, RxBuffer);或者没办法进入接收或空闲中断逻辑在中断服务函数 (ISR) 中使用printf可能会产生延迟,这会显著影响中断的实时处理效果。特别是对于高频串口接收,printfprintf是一个耗时的操作,会占用大量处理时间,使中断函数无法及时处理接收到的数据。这会导致接收数据丢失,或者IDLE和RXNE。
2024-11-09 18:17:46
340
原创 当 API 函数使某个任务进入就绪状态,调度器会重新检查所有任务的优先级。调度器怎么能及时知道有任务进入就绪状态了?
API 内部的和函数来触发调度器检查;事件驱动的调度机制;硬件平台(如 PendSV 中断)支持的任务切换机制。这些机制的结合确保了任务状态改变时,调度器可以立即响应并重新安排任务执行。
2024-11-08 20:38:41
362
原创 matlab工具箱滤波器特性分析
IIR的幅频特性通带平缓,过渡带单调下降且阻带衰减较大。如果单看幅频特性,IIR滤波器是数字滤波器的首选,但是IIR滤波器不是线性相位。线性相位意味着所有频率分量都会经历一个与频率无关的固定时间延迟,在非线性相位FIR滤波器中,各频率分量的时间延迟和相频特性的斜率之间不存在简单的倒数关系。对于通带0.2 Hz,阻带0.4 Hz的滤波器要求,如果选用IIR滤波器,只需要15阶,如果选用FIR滤波器,则需要上万阶才能实现上述要求。
2024-07-24 16:45:45
284
原创 Matlab中filter函数的用法
当a为1(a0=1)时,filter函数执行的是卷积操作,为FIR滤波器的工作方式, 如果a包含多个元素,那么filter函数执行的是IIR的工作方式。IIR滤波器是递归的,意味着它用输入信号的历史值来计算当前值。虽然IIR滤波器通常使用更少的系数来实现相同的滤波效果,但可能存在稳定性问题,引入相位失真。其中y为输出信号,x为输入信号,b是滤波器传递函数的分子系数,a是滤波器传递函数的分母系数。
2024-06-11 15:50:42
1560
原创 stm32TIM输入捕获
IC)输入捕获输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数每个高级定时器和通用定时器都拥有4个输入捕获通道可配置为PWMI模式,同时测量频率和占空比可配合主从触发模式,实现硬件全自动测量四个输入捕获和输出比较模块共用4个CCR寄存器,输入捕获的4个输入引脚和输出比较的4个输出引脚相同。
2024-03-05 19:30:50
775
1
原创 stm32PWM驱动应用
在C8T6中,PA15默认是JTDI端口,所以如果想让它作为普通的GPIO或者复用定时器的通道,那还需要先关闭调试端口的复用,使用GPIO_PinRemapConfig()。互补输出端口切换上下管导通状态时,上管关断的瞬间,下管立即就打开,可能因为器件的不理想,上管还没完全关断,下管已经导通,出现了短暂的上下管同时导通情况,这会导致功率损耗,引起器件发热。死区生成电路可以防止这种情况,它会在上管关闭的时候,延迟一小段时间,再导通下管,下管关闭的时候,延迟一小段时间,再导通上管。PWM适用于惯性系统。
2024-03-04 18:01:51
1147
1
原创 stm32定时器基本知识
UI上升箭头代表会产生中断信号,计数值=重装值产生的中断叫做“更新中断”,这个更新中断之后会通往NVIC,我们再配置好NVIC的定时器通道,那定时器的更新中断就能得到CPU的响应了。当定时器使能后,计数器就会开始计数了,当计数器更新时,触发中断,最后再写一个定时器的中断函数,这样中断函数每隔一段时间就能自动执行一次了。第二步:选择时基单元的时钟源,对于定时中断,选择内部时钟源(可省,因为系统上电后,默认打开内部时钟,如果使用外部时钟,系统也是会先打开内部时钟,等待外部时钟稳定后,再切换为外部时钟)。
2024-03-04 14:38:20
787
1
原创 stm32+esp8266模块获取网络时间
整个系统需要使用两次串口通信,第一次是PC与开发板通信(RXD-PA9,TXD-PA10),作用是当开发板与wifi模块开始配置是,逐步向PC打印出配置信息,并且将最终解析出的网络时间数据打印在串口助手上。第二次是开发板与wifi模块通信(PA2-TX,PA3-RX),作用是开发板发送AT指令,检查返回信息,并将获取的网络时间信息存储在数组中。开发板与wifi模块需要连线,3.3v-3v,GND-G,PA2-TX,PA3-RX。wifi模块无法识别AT指令,需要刷AT固件。STM32选用核心板。
2024-02-29 11:15:21
1239
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人