草庐IT

【STM32】IAP升级01 bootloader实现以及APP配置(主要)

APP程序以及中断向量表的偏移设置前言通过之前的了解之前的了解,我们知道实现IAP升级需要两个条件:1.APP程序必须在IAP程序之后的某个偏移量为x的地址开始;2.APP程序的中断向量表相应的移动,移动的偏移量为x;1.APP程序起始地址设置默认条件下的起始地址默认的条件下,图中IROM1的起始地址(Start)一般为0x08000000,大小(Size)为0x100000,即从0x08000000开始的1024K空间为我们的程序存储区。设置APP起始地址存储在flash上的APP起始地址设置方法设置起始地址(Start)为0x08010000,偏移量为0x10000(64K字节,即留给Bo

[STM32-1.点灯大师上线】

学习了江协科技的前4课,除了打开套件的第一秒是开心的,后面的时间都是在骂娘。因为51的基础已经几乎忘干净,c语言已经还给谭浩强,模电数电还有点底子,硬着头皮上吧。本篇主要是讲述学习点灯的过程和疑惑解释。1.工程文件的建立首先是在keil中建立一个新的工程项目,一个完整的工程项目除了基础部分还包含“Library"、”Start"、“User"这三个部分,这三个文件夹是需要自己新建的。其中,Library是STM32的标准库文件的存放路径,初始的例子中,所有的官方库文件都会一股脑的复制进来(因为这会儿水平还太低,不知道如何精准地挑选手头项目需要的库文件,因此力大砖飞),在这个文件中有.c文件也有

STM32无人机-四轴四元数姿态解算与卡尔曼滤波

四轴四元数姿态解算MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度。什么是四元数这部分很难,新手知道四元数的功能是将6轴传感器数据转化为三轴姿态角度数据即可。四元数解算程序店家已经封装成一个函数,输入MPU6050数值,解算周期dt,输出三维姿态角信息。事实上所谓DMP就是MPU6050内部的四元数解算,但是他们内部的解算精度低没有自己做四元数解算精度高。四元数具体的实现有下面几个步骤:1)机体重力加速度计转换到地理坐标系后。2)与四元数计算的地理重力加速度比较。3)得到误差校正陀螺仪的输出。4)然后用陀螺仪数据进行四元数更新。5)再转换到欧拉

【STM32】BLDC驱动&控制开发笔记 | 07_SPI通信测试 - STM32F407用SPI配置DRV8323驱动芯片

文章概览😶‍🌫️说在最前面+实现功能👀1CubeMX-RCC&ClockConfiguration时钟配置🥽1.1【SystemCore】–【RCC】🥽1.2【ClockConfiguration】👀2CubeMX-SYSDebug设置👀3CubeMX-UART通讯设置👀4CubeMX-TIM定时器设置👀5CubeMX-GPIO设置👀6CubeMX-GPIO设置:连接DRV8323S的一些端口⭐🥽6.1(STM32-out)PA9👈–👉CAL(DRV8323S-in)🥽6.2(STM32-out)PA10👈–👉ENABLE(DRV8323S–in,EN_GATE)🥽6.3(STM32-X)无👈

【STM32】sct 分散加载文件的格式与应用

简介当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,自动生成一个以工程名命名的后缀为*.sct的分散加载文件(LinkerControlFile,scatterloading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。一般情况下,不需要编写分散加载文件,由编译器自动生成,将某些数据放到默认位置。但是在某些场合,希望将某些数据放在指定的位置。例如可以设置源文件中定义的所有变量自动按地址分配到外部SRAM,这样就不需要再使用关键字“attribute”按具体地址来指定了;复

STM32_ADC————ADC+DMA多路数据传输,看门狗中断,传感器控制LED

本文主要内容:一:介绍ADC与DMA的基本情况与初始化二:利用ADC+DMA+看门狗中断+传感器控制LED灯代码三:总结实验过程中碰到的错误与问题实验说明:通过DMA转运ADC的数据,设置ADC的中断看门狗阈值,当光敏传感器的ADC采样值在看门狗高低阈值中间,不触发中断,如果超过看门狗的高低阈值就会触发中断,LED灯进行闪烁,并且利用串口打印出四个通道的ADC采样值(本实验传感器的D0口接PA0)。1:介绍ADC与DMA的基本情况与初始化:(1):ADC的模块框图,更多内容可以参考STM32官方文档。 (2)根据上图对照总结出大致ADC的执行流程图如下。 根据STM32F103系列可知,ADC