自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (3)
  • 收藏
  • 关注

原创 四元数和欧拉角以及方向余弦的区别

欧拉角定义的是三次基本旋转的三个角度,旋转顺序和旋转参考轴随不同领域有不同,在飞机上常用的是Z-X-Y规则,三次顺序旋转角度是偏航,俯仰,横滚,具体还要指明是旋转的参考系还是旋转的体坐标系通过这三个基本旋转角度可以得到坐标变换矩阵,也叫姿态矩阵,一个3*3矩阵欧拉角法是直接迭代欧拉角微分方程,但是当转动规则中的第二次基本旋转接近90度的时候,第一次和第三次基本旋转将变得作用相同,称为万

2014-03-28 22:51:51 7950

转载 十大滤波算法程序

1、限幅滤波法(又称程序判断滤波法)/*A、名称:限幅滤波法(又称程序判断滤波法)B、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A), 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效, 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。C、优点: 能有效克服因偶然因素引起的脉冲干扰。D、缺

2014-03-28 10:03:50 1162 1

转载 捷联惯导算法心得

1、四个概念:“地理”坐标系、“机体”坐标系、他们之间换算公式、换算公式用的系数。地理坐标系:东、北、天,以下简称地理。在这个坐标系里有重力永远是(0,0,1g),地磁永远是(0,1,x)(地磁的垂直不关心)两个三维向量。机体坐标系:以下简称机体,上面有陀螺、加计、电子罗盘传感器,三个三维向量。换算公式:以下简称公式,公式就是描述机体姿态的表达方法,一般都是用以地理为基准,从地理换

2014-03-27 16:56:10 8311 3

转载 欧拉角

主条目:欧拉角方向余弦矩阵足以设定附体参考系B的取向。但是,矩阵有九个元素,而刚体只能供给三个自由度来设定取向,因为这九个元素不是自变量。欧拉角的三个自变量可以用来设定刚体的取向。相对于空间参考系S,附体参考系B的取向,可以用三个欧拉角来设定。参阅右图。设定xyz-轴为空间参考系S的坐标轴,XYZ-轴为附体参考系B的坐标轴。称xy-平面与XY-平面的相交为“交点线”,用英文字母(N

2014-03-27 11:14:02 1552

原创 空间坐标变换的矩阵表示法

图8.1.1-1  所谓空间坐标变换(coordinate transform),就是指空间任意点P在两个空间右手直角坐标系oxmymzm和oxnynzn中的坐标关系。    图8.1.1-1所示两个空间直角坐标系oxmymzm和oxnynzn(以下简称m坐标系和n坐标系)的原点重合于o点,称为共原点的两个坐标系。假设开始两坐标系的三个坐标轴分别重合,然后其中一个坐

2014-03-27 10:05:12 22848 4

原创 卡尔曼滤波原理

在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器

2014-03-24 16:13:30 2341 1

转载 关于USART接收中断的BUG和注意事项

问题描述:在使用USART做串口通讯时,我只把接收中断打开,并设置抢占优先级为最低一个级别,而接收中断上一个优先级处理事情比较多,可能占用了2ms时间。当我使用9600波特率往下位机发送数据,速度非常快,就是一直按回车发!问题就出来,不到1分钟时间,通讯没有反应了。USART配置代码如下:void uart_config(void){    USART_InitTypeDef US

2014-03-20 10:50:51 809

转载 STM32 待机唤醒

3.12.1 STM32待机模式简介3.12.2 硬件设计3.12.3 软件设计3.12.4 下载与测试3.12.1 STM32待机模式简介 很多单片机都有低功耗模式,STM32也不例外。在系统或电源复位以后,微控制器处于运行状态。运行状态下的HCLK为CPU提供时钟,内核执行程序代码。当CPU不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某

2014-03-19 17:24:18 4489

转载 STM32F407之CAN控制器

首先简单介绍一下CAN总线,关于CAN总线是谁发明的,CAN总线的历史,CAN总线的发展,CAN总线的应用场合,这些,通通不说。这里只是以我个人理解,简单说说CAN通信。CAN总线的端点没有地址(除非自己在帧里定义地址),CAN总线通信不用地址,用标识符,不是单独的谁发给谁,而是,你总是发送给整个网络。然后每个节点都有过滤器,对网络上的传播的帧的标识符进行过滤,自己想要什么样的帧,可以设置自己的过

2014-03-19 11:31:20 2207

转载 STM32F407之数字滤波

为了对stm32f4的ADC和DAC有更多的了解,我决定做一个实用性比较强的实验。就是数字滤波实验,利用stm32f4的DAC可以产生噪声的特点,利用它的一路DAC产生叠加噪声的信号作为原始信号。然后用ADC测量,把结果经过滤波处理后用DAC的另一通道把结果输出,用双踪示波器观察。  一阶惯性滤波器及其数字化一阶惯性滤波器的传递函数为:利用一阶差

2014-03-19 11:28:47 6935 8

转载 STM32低功耗实验总结

1、 首先回答一个问题,STM32能不能做低功耗? 回答是肯定的,这个是有数据支持的,我测试的STM32101CB,FLASH:128K,RAM:16K并且RTC工作的情况下,测试到的功耗为16uA应该说还是相当不错的。 2、 STM32低功耗有哪些需要注意的地方? 一开始我测试到STM32为16uA的时候,还是非常高兴的,以为真的可以做为我的应用,我的应用是让MCU定时醒来干活,干一

2014-03-18 17:11:37 1703

转载 stm32 DMA数据搬运 [操作寄存器+库函数]

DMA(Direct Memory Access)常译为“存储器直接存取”。早在Intel的8086平台上就有了DMA应用了。         一个完整的微控制器通常由CPU、存储器和外设等组件构成。这些组件一般在结构和功能上都是独立的,而各个组件的协调和交互就由CPU完成。如此一来,CPU作为整个芯片的核心,其处理的工作量是很大的。如果CPU先从A外设拿到一个数据送给B外设使用,同时C外

2014-03-18 16:30:37 3725

转载 stm32上最方便的定时器Systick

Systick 是stm32上一个用处很多的内设,所有基于arm-cortex m3 的芯片都有这个定时器,所以考虑到平台的可移植性时,可以多使用Systick。 Systick 是一个24位数据宽度的倒计数定时器,其计数范围只能到 1677215(2^24),当计数到0时会从RELOAD寄存器 中自动重装定时初值。只要不把SysTick的控制及状态寄存器中的使能位清除,计数器就不会停止。

2014-03-18 16:26:27 914

转载 stm32 USART 串口通信[操作寄存器+库函数]

串口通信虽然在如今的电脑上使用的越来越少,因为其在通信速率,距离已经不适应pc的要求,取而代之的是USB口。但是在嵌入式领域,USART仍然广泛运用着。  stm32的最多可以提供5路串口,有分数波特率发生器、支持同步单线通信和半双工单线通信、具有DMA等。使用USART时,stm32的I/O口经RS232电平转换电路 和电脑的串口连接。  串口使用只需要开始串口时钟,设置相应的I

2014-03-18 16:21:33 14941 1

转载 stm32 TIM定时器[操作寄存器+库函数]

stm32配备了2个高级定时器TIM1和TIM8,4个通用定时器 TIM2,TIM3,TIM4和TIM5,还有两个基本定时器TIM6和TIM7。 高级定时器常用于电机控制,因为其加入了死区控制,紧急制动,定时器同步等高级特性。基本定时器可以为数模转化器提供准确的时间基准。 stm32的通用定时器由一个通过可编程预分频器驱动的16位自动装载计数器构成。通用定时器可以用于测量输入信号的脉冲长度

2014-03-18 16:16:38 14226

转载 stm32 外部中断嵌套[操作寄存器+库函数]

stm32共有19个外部中断: 线0~15:对应外部I/O口的输入中断线16:连接到PVD输出。PVD(Programmable Votage Detector),即可编程电压监测器。作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。线17:连接到RTC实时时钟产生

2014-03-18 16:14:44 1854

转载 stm32 独立看门狗[操作寄存器+库函数]

以单片机为核心的微型计算机系统中,单片机经常会受到来自外界电磁场的干扰。造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作。看门狗就是一种专门用于检测单片机程序运行状态的硬件结构。 stm32也是如此。 stm32 的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障时,它也仍然有效。这里需要注意的是独立看门狗的时钟是一个内

2014-03-18 16:10:58 1777

转载 stm32 AD模数转换[操作寄存器+库函数]

stm32f103最少有2个AD模数转换器,每个ADC都有18个通道,可以测量16个外部和2个内部模拟量。最大转换频率为1Mhz,也就是转换时间为1us(在 ADCCLK = 14Mhz,采样周期为1.5个时钟周期时)。最大时钟超过14Mhz,将导致ADC转换准确度降低。stm32的ADC是12位精度的。 stm32的ADC转换有两种通道,规则通道和注入通道,注入通道可以抢占式地打断规则通

2014-03-18 16:08:40 5059 1

转载 stm32 i2c通信 [操作寄存器+库函数]

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

2014-03-18 16:06:55 2306

转载 stm32 i2c通信 [操作寄存器+库函数]

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

2014-03-18 16:05:40 645

转载 stm32 i2c通信 [操作寄存器+库函数]

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

2014-03-18 16:05:26 337

转载 stm32 i2c通信 [操作寄存器+库函数]

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

2014-03-18 16:01:23 481

转载 stm32 i2c通信 [操作寄存器+库函数]

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

2014-03-18 16:00:13 630

转载 stm32 i2c通信 [操作寄存器+库函数]

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

2014-03-18 15:58:09 494

转载 stm32 i2c通信 [操作寄存器+库函数]

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

2014-03-18 15:57:09 586

转载 stm32 低功耗设计[操作寄存器+库函数]

stm32的低功耗模式有三种: 睡眠模式(内核停止,外设运行)停机模式(所有时钟都停止)待机模式(1.8V内核电源也关闭) 在这三种模式中,最低功耗的是待机模式,在此模式下,最低只需要2uA左右的电流。整个1.8V供电区被断电,PLL、HSI、HSE振荡器都被关闭。SRAM和寄存器内容丢失。停机模式是次低功耗的的,其典型的电流损耗在20uA左右。最后就是睡眠模式。

2014-03-18 15:54:28 2933 1

转载 STM32F407之ADC

12位ADC是一种逐次逼近型模拟数字转换器。它有多达19个通道,可测量16个外部和2个内部信号源和Vbat通道。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。有16个多路通道。 通道选择:      可以把转换组织成两组:规

2014-03-18 14:01:53 2480

转载 STM32F407之DAC

Stm32f4内嵌的DAC是12位数字输入,电压输出的数模转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。

2014-03-18 14:00:56 6154

转载 STM32F407之基本定时器TIM6&TIM7

基本定时器TIM6和TIM7包括一个由可编程分频器驱动的16位自动重载计数器。它可以用作普通的定时器,也可以用来驱动DAC。这两个定时器是完全独立的,不共享任何资源。更多时候是与DAC平配合使用。    作为定时器的配置步骤:1.      设置中断优先级分组(如果之前没有设置),这个最好一个程序里只在开头设置一次。2.     使能相关时钟

2014-03-18 13:55:37 5959

转载 STM32F407之 通用定时器

通用定时器(TIM2 to TIM5)包括由可编程的分频器驱动一个的16位或32位自动重载计数器。它们可用于多种用途,包括测量输入信号的脉冲长度(输入捕获)或生成的输出波形(输出比较和PWM)。可以使用定时器的预分频器和RCC时钟控制器分频器调制从几微秒到几毫秒的脉冲长度和波形周期。它们是完全独立的,不共享任何资源。  主要特点:通用TIMx定时器功能包括:

2014-03-18 13:54:20 1553

转载 STM32F407之DMA

直接内存访问(DMA)是用来以提供外设和内存、内存和内存之间的高速数据传输的。数据可以在没有任何CPU干预下通过的DMA进行传输。这使得CPU资源更倾重与其他操作。       DMA控制器基于一个复杂的总线矩阵架构,结合了功能强大的双AHB主总线架构与独立的FIFO,以优化系统带宽。        两个DMA控制器共有16个数据流(stream),每个数据流可以编程与规定的通道中

2014-03-18 13:52:31 2477

转载 STM32F407之USART

STM32F407xx内嵌四个通用同步/异步接收器​​(USART1,USART2,USART3和USART6)和两个通用异步收发器(UART4和UART5)。这6个接口提供异步通信的IrDASIR ENDEC支持,多机通信模式,单线半双工通信模式LIN主/从功能。 USART1和USART6接口能够速度高达10.5 Mbit / s的通信其他可用的接口通信高达5.25bit/s。USART1,U

2014-03-17 22:22:32 1735

转载 STM32F407之EXTI

外部中断/事件控制器包括用于生成高达23个事件/中断的请求。每条中断线可独立配置选择类型(响应或挂起)和相应的触发事件(上升或下降或两者)。每一中断线可以独立屏蔽。有一个挂起寄存器维持中断线的状态请求。 EXTI线0~15连接到PX0~15(可编程配置)EXTI线16连接到PVD的输出事件EXTI线17连接到RTC报警事件EXTI线18连接的USB OTG FS唤醒

2014-03-17 22:18:06 1297 1

转载 STM32F407之NVIC

中断向量嵌套控制器是用来管理所有中断和事件的,包括中断的使能和除能,中断的优先级。这个是属于内核的东西,所以ST的参考手册上对它的描述较少,但他又是十分重要的东西,要了解它就要看ARM的《Cortex™-M4 Devices Generic User Guide》。 相关寄存器译自《Cortex™-M4 Devices Generic UserGuide》,若有错误,请以原

2014-03-17 21:51:42 1091

转载 STM32F407之GPIO

stm32f407VG这款单片机上共有PA-PE共5×16共80个复用IO口,每个通用I / O端口有4个32位配置寄存器(GPIOx_MODERGPIOx_OTYPER GPIOx_OSPEEDR GPIOx_PUPDR),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位的置位/复位寄存器(GPIOx_BSRR),32位锁定寄存器(GPIOx_LCKR)和两个32位的备

2014-03-17 21:29:07 1569

转载 STM32F407之了解编程环境

前文再续,书接上一回,前面我们建立了一个文件夹,用来存放我们的工程,有建了三个文件夹,现在,分别解析一下这三个文件夹里放的是什么东西。 inc文件夹里放的是头文件,一共六个,以后我们自己的头文件也可以放到这里来。 stm32f4xx.h                     包含了stm32f4的寄存器结构体的定义(类似于C51的reg52.h)core_

2014-03-17 21:23:42 735

转载 STM32F407之创建IAR工程

首先介绍一下IAR。         IAR EmbeddedWorkbench for ARM是一套支持ARM所有处理器的集成开发环境,包含项目管理器、编辑器、C/C++编译器、汇编器、连接器和调试器。在IAR Embedded Workbench for ARM环境下可以使用C/C++和汇编语言方便地开发ARM嵌入式应用程序,比较其他的ARM开发环境,IAREmbedded Workb

2014-03-17 21:19:33 1730

转载 STM32之CAN--中断管理浅析

1 前言bxCAN占用4个专用的中断向量。通过设置CAN中断允许寄存器(CAN_IER),每个中断源都可以单独允许和禁用。                                                                      图1从图1可以看出,最右边共四个中断,中断是可以通过CAN_IER来屏蔽或允许的。2 CAN中断允许寄

2014-03-17 20:56:08 746

原创 大众汽车平台PQ、MBQ简介

1·大众开发Ao级车的平台就叫PQ2系,目前最新的就是PQ25,此平台生产的典型的就是新Polo;2·开发A级车(紧凑型车)的平台叫PQ3系,目前在华是PQ34和PQ35两代同堂都在使用。PQ34平台下诞生了——新、老宝来、朗逸;PQ35平台下诞生了——速腾、高尔夫、斯柯达·明锐、途观(平台衍生SUV)、奥迪Q3、Q5更老的PQ3系平台下还生产——老款捷达3·开发B级车(中型车

2014-03-14 14:12:09 9090

OsekNm示例代码

基于osek的直接网络管理,可参考并应用于实际项目开发中

2018-04-20

J1939程序带UCOS II

J1939协议开发,带有UCOS II,为学习开发者提供参考

2012-09-27

CANopen代码

canopen 开发示例代码 有c51和PIC18F

2012-09-07

空空如也

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

TA关注的人

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