第一步:什么是极点? 假设一个系统的传递函数是 $G(s) = \frac{1}{s - p}$。这里的 $p$ 就是极点(让分母为 0 的点)。 第二步:回到时间轴(拉普拉斯逆变换) 我们在数学上知道, $\frac{1}{s - p}$ 在时间域上对应的函数是 $e^{pt}$。 这个 $e^{pt}$ 描述了系统受到扰动后,自己“乱动”的规律(天然反应)。 第三步:看p的正负(复平面的左与右) 极点 $p$ 通常是一个复数,可以写成 $p = \sigma + j\omega$( $\sigma$ 是实部, $\omega$ 是虚部)。那...
CherryUSB协议栈学习使用 基于STM320B1使用CherryUSB协议栈来做虚拟串口。这个协议栈是中国人自己写的一个USB协议栈,据说比STM32自带的好用。 之前作为螺丝钉,项目的芯片选型,技术选型一直不受我的控制。加入新公司之后,因为新公司人比较少,甚至没有产品经理,所以从硬件选型到技术选型都由我自己设计了。 于是我觉得项目中80%用旧技术,20%用新技术,也算是一种学习。如果实在搞不定,就在硬件上加一个TLL to USB的芯片。 一、对于USB IP的理解 这款USB协议栈是基于USB的IP核所设计的,可以从它的port文件夹内...
STM32G0B1系列的单片机,使用软件RS485通信。频繁进入HAL_UART_ErrorCallback。 因为在错误回调中做过清错误的处理,一直都功能正常,直到今天偶然间才发现这个问题。 错误寄存器显示ORE,NE,FE,PE错误,ORE为溢出错误,NE/FE为噪声错误/帧错误。 初步判定我的软件485收发切换不及时导致。 折腾了一天,测试结果现象如下: 1.发现问题之后,我怀疑我自己封装的驱动调用路径太长。所以用CubeMX新建了一个工程,新工程中没有复现该现象。我理解为现在STM32的HAL库中,提供的HAL_UART_TxCpltCallback就是说明TC中...
博客:shiro 症状:前台访问502 Bad Gateway,后台可以正常登陆 https://chat.deepseek.com/share/6p59zrneqgbe0gur0k 1.提供给AI构建脚本 `yaml name: Build and Deploy on: push: branches: main schedule: - cron: '0 3 * * *' repository_dispatch: types: [trigger-workflow] permissions: write-all...
傅里叶级数的前世今生 傅里叶变换应用在我们生活中的方方面面,它本身值的用“传奇”两个字来评价。 相信学习通信和自动化的朋友们,都能够领会到这个变换的强大之处。 它提供了一个全新的视角去理解这个世界——从“时域”到“频域”。 不过在最开始的时候,约瑟夫傅里叶创造它并不是为了纯数学的优雅,而是为了解决一个非常实际的热传导问题——如何精确地描述热量在物体(比如一块金属)中随时间扩散和分布的规律? 现在让我们把视角转到十九世纪,来回顾一下“傅里叶级数”的前世今生。(当然从级数到变换中间还有很长的路要走,这里从级数开始讲起) 1.热传导问题的核心是解一个偏微分方程 ...
早上一到公司,我的笔记本电脑突然进入不了windows操作系统了。 折腾了一上午,总算搞定了。 关键就是bootmgfw.efi文件损坏,不清楚原因。开机之后直接进入GRUB界面。 一个黑漆漆的命令行,什么都没有。 这台笔记本曾经装个Ubunt,但是好几个月前就被我格式化回Windows使用了。一直正常的使用了好几个月。直到今天早上出现了这种情况。 GRUB应该不是Windows的引导程序,我查了资料,可能是之前Ubuntu没有清理干净。我根据网络的资料设置了Windows的efi文件。 ` chainloader /efi/Microsoft/Boot/bootmgfw.efi ...
第二章 线性时不变系统的时域分析 0、LTI系统的定义 Linear Time-Invariant (LTI) 如果一个系统既线性,又时不变,我们就叫它线性时不变系统。 线性时不变系统的性质 为什么研究线性时不变系统? 为什么研究线性系统 首先思考一个问题:这个世界上有绝对意义上的线性系统吗?(满足齐次性和叠加性) 满足齐次性就意味着如果一个系统是2x,那么假设通入1A...
在学习信号与系统的时候,有一个非常重要的函数,叫抽样函数Sa. $$\begin{cases} 1,t=0\\ Sa\left( t \right) =\frac{\sin t}{t},t\ne 0\\ \end{cases}$$ 为什么t=0是为1,是因为我们人为定义,t=0时刻这个函数的值等于它此时的极限。 $$\lim_{t\longrightarrow 0} \frac{\sin t}{t}=1$$ 讲到这里,首先有一个问题: 1.函数的极限如何去求? 常见方法1:直接代入法。 如果函数极限代入后有意义(函数连续),那么可以直接代入。 这...
本章节以H7-tool以及手头上的安富莱开发板为例,用这套组合进行连接芯片的尝试。 用经典跑马灯的例程。 具体怎么使用的细节,这里不深入,只是为了证明第一章编译出来的openocd是可以正常使用的。我们时刻铭记着我们的终极目标是为一款没见过的芯片(LCM32F039)去添加下载算法。 这里简单介绍使用方法,只是为了让读者在添加完下载算法之后,不至于不会用。 1.直接使用gdb+openocd连接芯片 gdb有各种架构的。我们这里是为了调试STM32所以需要的是arm-none-eabi-gbd。 在msys2自带的软件库里面没有这个软件包(理论是`gdb-muti...
前言 openocd是一款开源的调试工具,当使用非mdk作为开发环境的时候会用到它。 如果你有一块热门的板子可以通过以下配置启动openocd: openocd -f board/stm32f4discovery.cfg 如果你是特定的调试器interface和特定的目标芯片target: openocd -f interface/ftdi/jtagkey2.cfg -c "transport select jtag" \ -f target/ti_calypso.cfg 或 `sh openocd -f ...