自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 ADC高速采样和转换(2):数据搬运

DMA相对于软件搬运(尤其是中断方式)节省的时间,主要体现在CPU时间的解放*上。对于16次搬运:*软件中断:CPU花费。

2025-08-22 20:19:28 1127

原创 ADC高速采样和转换(1):常见方案

问:对于stm32f而言,如何最大程度提高adc的采样和转换速度,以及提高da的输出响应速度?应用场景是stm32f4需要采集3个adc通道并且每个通道都要至少采集16次进行软件滤波,然后其中一个ad通道的采集值经过软件运算得到da输出值,给到da外设输出到外部,这里需要ad和da都要响应很快,整体耗时最好能控制在50us以内,请问有哪些方法。

2025-08-22 20:12:30 1106

原创 STM32:(0)上电启动之地址重映射

STM32内部有一个名为“内存地址重映射控制器”复位时,根据BOOT引脚状态生成硬件映射选择信号。通过地址总线切换逻辑,将零地址空间访问转发到目标物理存储区。目标存储区的物理地址被镜像到零地址空间,形成虚拟映射关系。地址重映射是STM32启动过程中的一个重要机制,它通过硬件根据BOOT引脚的状态将不同的存储器映射到0地址。在程序运行时,也可以根据需要通过SYSCFG寄存器改变映射关系。

2025-08-13 23:32:48 1479 1

原创 STM32:外部中断——AFIO、EXIT和NVIC

介绍提供了很多中断,方便用于监视各种事件分为内核级别的事件中断和外设级别的事件中断。

2025-07-25 18:21:57 1154

原创 上电启动过程:(1)概述流程

上电复位,复位脉宽至少20ns。上电复位或者外部手动拉低RST引脚造成的复位,都会使得外设和内核的寄存器都恢复成默认值。而内部看门狗复位,只复位内核寄存器的值,外设寄存器的值保持为原本的配置值。上电后,CPU先执行内部的出厂Bootloader程序,这个程序会只初始化自身代码需要的硬件外设,然后去读取Boot0和Boot1引脚,然后决定将0x0地址映射到哪一块区域:内部flash所在地址,还是内部sram所在地址,还是说等待接收串口数据进行应用程序的更新。可见,出厂Bootloader。

2025-06-16 23:16:08 880

原创 调试工具链:(1)全流程概述

简单做个资料整理,还有很多东西没搞明白。

2025-06-14 23:46:32 1331

原创 内核、指令集和架构:【1】三者的关系

指令集 (Instruction Set - IS / ISA):指令集是处理器(内核)能理解和执行的所有机器指令的集合及其规范。它定义了:有哪些指令可用(如ADDMOVLDRSTRBBL每条指令的具体功能(这条指令做什么操作)。每条指令的二进制编码格式(机器码长什么样)。指令操作的对象(寄存器、内存地址)。指令执行后对处理器状态(如标志寄存器)的影响。指令集是软硬件之间的契约,是编程模型(Programming Model)的核心部分。

2025-06-11 21:43:21 1235

原创 内核、指令集和架构:【3】M0和M3

M0+在M0的基础上增加了硬件除法并优化了功耗,成为了非常受欢迎的超低功耗主力。M4则在M3基础上增加了DSP扩展和可选的FPU,面向信号处理应用。架构,它们共享核心的32位RISC设计理念和Thumb/Thumb-2指令集基础,但在支持的指令子集、性能、功能和扩展方面存在显著差异。ARM Cortex-M系列的内核(M0, M0+, M3, M4, M7, M23, M33, M55等)都基于。

2025-06-11 21:42:30 1363

原创 内核、指令集和架构:【2】内核和外设

理解嵌入式系统中的和是掌握其架构的关键。它们共同构成了一颗微控制器(MCU)或微处理器(MPU)芯片。

2025-06-11 21:41:43 621

原创 内核、指令集和架构:【4】ARM产品线

ARM架构通过。

2025-06-11 21:35:16 984

原创 调试工具链:(0)调试协议栈

简单说: 它就是一套规则,规定了调试器如何通过物理线(如JTAG/SWD的几根线)与芯片内部的调试硬件进行对话,实现调试功能(暂停CPU、读写内存/寄存器等)。“栈”的含义: 指这个通信过程是分层的底层(物理层): 规定电压电平、时钟时序、信号线定义(如SWDIO, SWCLK, TCK, TMS, TDI, TDO)。中间层(链路层/命令层): 规定如何打包数据、如何发起请求(读/写)、如何确认操作、错误处理等。比如SWD特有的“分组头”、“ACK”响应;JTAG的TAP状态机操作。

2025-06-09 23:43:18 543

原创 内存分配基础:修改SCT文件的简单例子

一个简单例子,熟悉最基本的语法,有个初步的理解。

2025-06-08 14:01:19 886

原创 技巧小结:根据寄存器手册写常用外设的驱动程序

按照手册中的寄存器地址声明结构体模板volatile前面的DMA_ISR和DMA_IFCR寄存器是DMA模块的中断管理,适用于所有DMA通道。后面的则是对应到每个DMA通道的控制寄存器。因此为了使用方便,定义结构体时将两者分开。//DMA中断状态寄存器(DMA_ISR)//DMA中断标志清除寄存器(DMA_IFCR)//DMA通道x配置寄存器(DMA_CCRx)(x = 1…7)//DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7)

2025-06-07 19:52:27 1035

原创 技巧小结:外部总线访问FPGA寄存器

stm32的fsmc总线挂载fpga,stm32需要访问fpga内部寄存器。

2025-06-03 15:07:27 1037

原创 ARM处理器程序烧写和仿真方式:协议、烧写器硬件、下位机、上位机

JTAG和SWD是通信协议,绝大部分处理器都支持JTAG通信,因为JTAG是调试的通用协议,而SWD是ARM的专用调试通信协议。CMSIS-DAP是ARM规定的调试标准。JLink是SEGGER开发的通用调试器JLink固件能兼容很多处理器架构的调试标准,兼容CMSIS-DAP。STM32内部调试单元支持SWD和JTAG两种通信协议。STM32是ARM处理器,内部调试单元符合CMSIS-DAP标准。基于CMSIS-DAP标准开发的ST-Link调试器能用于STM32调试,使用SWD通信,并使用。

2025-05-26 00:11:23 1259

原创 Keil和Jlink基本篇:下载和配置Jlink

通过以上步骤,J-Link 即可正确识别新增芯片型号,并在 Keil 中完成调试和烧录。如果问题仍存在,建议查阅芯片手册或联系厂商获取技术支持。为了让 J-Link 在 Keil 中识别新增的芯片型号,需要通过。并确保 Keil 支持该芯片的算法文件。在配置文件中插入以下代码(以。

2025-05-25 10:06:34 2319

原创 内存分配基础:SCT文件的基本概念

在 Keil MDK(μVision)中,链接器脚本文件(分散加载文件,Scatter-Loading File)用于控制代码和数据在内存中的分布。

2025-05-24 17:56:14 2086

原创 加密处理(1)

通过上述策略,MCU程序可在加密认证失败时实现隐蔽响应与动态防御,显著提高破解成本。实际应用中建议结合混合加密方案(如算法移植+硬件加密芯片)与安全启动机制(如AES-CMAC验证固件完整性),形成多层防护体系。此外,定期更新加密密钥与固件版本可进一步降低长期攻击风险。

2025-05-24 08:06:03 468

原创 STM32:FSMC和SRAM(XM8A51216V33A)时序分析

ce下降沿到写结束即ce上升沿(即ce低电平持续时间),至少要有7ns,即MCU要给sram至少提供7ns的cs,这里的写结束是ce上升沿,也是we上升沿,因为两者在同一时刻,如果MCU给过来的是先we上升沿,隔一段时间再是ce上升沿,那么写结束就是ce上升沿,实际上一般是we上升沿开始锁存和写入数据。:数据建立时间,数据输入即有效后,至少过了0ns才能结束写操作即给出ce上升沿,也就是说数据线上一旦给出数据后,ce就可以结束了,说明采样电路性能挺好,只要数据在ce有效段出现了就好。

2025-04-15 08:17:09 1545

原创 ARM处理器程序烧写和仿真方式:概述

无论是jtag还是串口烧写,本质都是先通过上位机(keil 或者flymcu或者芯片官方上位机等烧写bin的上位机)往mcu的ram里烧写一段代码即.FLM文件,这段代码在上位机(keil体现在配置项里,flymcu应该是内置了吧,jlink体现在JFlash的文件夹下面)里存的有,这段代码的作用是从上位机接收数据(即用户程序的bin文件)并将其写入到flash指定的地址空间里。而jtag和串口起到的作用都是通信接收数据。

2025-04-14 21:06:12 488

原创 Keil调试技巧

一步一步在函数里执行,想一下将剩余的执行完然后从此函数里出来,那么就ctr+f11表示执行完此函数的剩余部分然后从次函数中退出跳。蓝色箭头是临时断点,放到想执行到行,然后ctr+f10表示从1到0执行到想要的位置即run to cursor。先f7编译后f8下载,不得不就要ctr+f5进入调试状态,调试状态下再ctr+f5就退出调试。调试想加断点就f9,就把断点加上;调试若一下执行过此函数就f10即从1到0执行完。调试若一句一句语句的过就f11即一步一步。调试若直接一直run就f5。

2025-04-12 08:16:58 570

原创 STM32:软件模拟IIC

软件模拟IIC

2025-01-12 19:01:23 145

原创 STM32:IIC通信基本时序单元

IIC通信

2025-01-12 18:57:27 143

原创 STM32:根据时序图写驱动程序

根据数据手册的时序图写程序

2025-01-12 18:48:46 236

原创 STM32:变量存储位置、Hex文件、Bin文件、Dis文件、机器码、Map文件

STM32启动过程的相关总结

2024-12-01 18:31:57 436

原创 数据结构:链表

遍历比较学号值,如果node的学号比p的小就直接插到p的前面,大于的话还要往后找,即p和q玩后裔;到p知道NULL退出循环,即考虑边界情况了,推出后直接插到q后面就行了;引入头节点,使得空表与飞控表的处理方式编程一样的了;头肩点是自己创建的额一个节点,数据与位空,指针与指向第一个节点。推出的猴子用0表示,需要跳过0的;一开始从1报数,寻你换结束的条件是剩下一个,pq重合了;下表和内容构成循环链表:下表0的下一个是1,下表1的下个是2,创建,查找,插入,删除,头茬尾插,一前一后。注意先修改谁的,后修改谁的。

2024-11-17 16:49:16 404 1

原创 STM32:DMA介绍

stm32的DMA介绍

2024-11-17 16:25:19 195

原创 STM32:ADC介绍

stm32的ADC基本原理介绍

2024-11-17 16:19:07 192

原创 硬件设计:查找原理图符号、PCB封装

记录一下自己常用的一些网址和工具

2024-09-02 19:45:03 1128

原创 SPI:数据通道有俩,数据寄存器就一个

STM32的SPI模块

2022-07-12 21:41:58 6942 2

原创 DMA:一个自动搬运车的自述

DMA的功能阐述,和USART配合使用

2022-07-11 15:17:12 1529

原创 待机唤醒功能:怎么进入怎么出

STM32的待机唤醒模式

2022-07-09 21:55:40 922 1

原创 ADC:转换过程与参数配置

STM32中的ADC模块

2022-07-09 20:50:28 8388

原创 RTC时钟:一个日历

基于正点原子课程做的RTC时钟小结,供自己复习用

2022-07-08 16:06:45 693

原创 CV、CA、CT运动模型的理解和matlab程序简单实现

较为详细介绍的是CT,CV和CA可以类比着快速理解一、CV模型简单介绍%% CV模型% xk = xk-1 + vxk * delta_T + 0.5*ax*delta_T^2% vxk = vxk-1 + ax*delta_T% yk = yk-1 + vyk * delta_T + 0.5*ay*delta_T^2% vyk = vyk-1 + ay*delta_T% X = [x;vx;y;vy];cv_M = 20;cv_X = zeros(4,cv_M);cv_delta_t

2021-04-20 19:42:10 11567 3

原创 PID的理解

PID是简单有效的控制算法,在智能车比赛中多有使用,以下是自己对PID算法的简单总结,重点关注了自己在学习PID时遇到的几个疑惑点1.基本介绍P:比例I:积分D:微分各自的作用:公式简单推导:2.理解PID的经典小例子3.我遇到的疑惑点...

2021-01-17 23:17:32 13981 6

原创 随机有限集RFS自学笔记(六):用预测步与更新步公式来计算的一个例子

前面写这么多推导公式,总感觉不够直观和印象深刻,个人认为看具体的额例子能更快的明白这个东西是怎么运行的,我就尝试着叙述一下这个例子。从最简单的例子开始:线性方程,正态分布,一维标量。有些符号需要说明一下:p−(xk)p^-(x_k)p−(xk​)表示的是第kkk时刻的先验值,p+(xk)p^+(x_k)p+(xk​)表示的是第kkk时刻的后验值。另外,p(xk∣z1:k−1)p(x_k|z_{1:k-1})p(xk​∣z1:k−1​)表示的也是第kkk时刻的先验值,和p−(xk)p^-(x_k)p−(x

2020-12-18 14:24:07 2896 2

原创 RFS自学笔记(四):实际测量模型——Ok与Ck两者的混合,再求似然概率

涉及到了联合概率分布的知识,将公式粒子化以方便计算机运算

2020-12-17 23:59:43 1184

原创 RFS自学笔记(三):杂波模型——先用泊松分布确定个数,再用均匀分布作为概率分布

杂波模型是从二项分布推导出来的

2020-12-17 18:53:13 2811

原创 RFS自学笔记(二):理论测量模型——不含杂波但带有检测概率

理论测量模型是不考虑杂波的,其测量值用OkO_kOk​表示;而实际测量模型是考虑杂波的,其测量值用ZkZ_kZk​表示,其中ZkZ_kZk​=(Ok,Ck)(O_k,C_k)(Ok​,Ck​),这里的CkC_kCk​表示的是杂波。很显然,这里主要是把传感器实际测得数据ZkZ_kZk​拆分成了两部分分别建模以方便后续的处理。现在学习理论测量模型OkO_kOk​所对应的概率P(Ok∣Xk)P(O_k|X_k)P(Ok​∣Xk​)的推导和计算。理论测量模型主要分为两部分:1.判断是否检测到了物体,检测到的概率

2020-12-16 13:35:47 1852 3

数学建模方法与分析

详细介绍了数学建模比赛中常用的最优化模型,动态分析模型,概率分析模型,按照建模方法的常用步骤展开介绍,用简单易懂的案例辅助说明,相对简单,适合数学建模入门。

2019-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除