你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32F3开发日志】从零开始学STM32F3系列单片机--陀螺仪

[复制链接]
reayfei-119372 发布时间:2013-2-28 11:12
从零开始学STM32F3系列单片机

       STM32 F3开发套件内置陀螺仪和电子罗盘—9个自由度(DOF)MEMS传感器,结合新系列微控制器的先进信号处理和计算功能,可实现具有价格竞争力的传感器融合应用,例如航姿参考系统(Attitude HeadingReference Systems ,AHRS)。传感器融合应用结合强大的计算性能,让设计人员能够在移动游戏、增强实境、光学图像防抖功能、便携式导航系统、机器人和工业自动化系统中实现先进的3D运动检测系统。






       开发套件包括一个可直接使用的微控制器系统板,板上集成了STM32F303微控制器和相关芯片,以及LED指示灯、按钮、I/O排针和连接PC的USB接口。微控制器的所有引脚都可扩展至无障碍检测点,便于检测和调试应用设计。

      板载MEMS传感器是L3GD20(3轴数字陀螺仪)和LSM303DLHC(6轴地磁传感器)模块,分别来自意法半导体宽广的MEMS传感器产品组合和iNEMO惯性模块。STM32F3 开发套件与Altium、Atollic、IAR、Keil等领先的第三方软件工具厂商提供的STM32软件开发环境相兼容。

      今天我们学习的就是基于Keil开发环境进行的。

      首先,拿到开发板之后,确保JP3和CN4是连接的,上电后会发现LD1长亮,LD2闪烁:

      1,             点击USER按钮后,陀螺仪开始启动,8颗LED根据陀螺仪的变化开始闪烁不同效果。

      2,             再次点击USER按钮后,电子罗盘开始启动,开发板水平放置时,总有1颗LED指向北方。

      OK,一个小小的演示完成了,很炫吧!

      STLink驱动的下载地址:http://www.st.com/internet/evalboard/product/251168.jsp

      注意:安装完软件后,需要重新启动电脑才能生效。


      官方提供了例程和模板如图:





      打开模版里的工程,选择的是MDK-ARM目录下的工程,(不需要配置,因为是已经配置好的)连接上开发板,编译链接、下载程序到开发板中。 开发板此时只有四个led轮流点亮,则证明下载程序成功。



实验一 UART通讯


      首先,我们看一下如何使用Example文件夹里的例子。打开STM32F30x_StdPeriph_Examples文件夹,会看到有25个例子(ADC、DMA、I2C等),打开ADC文件夹,把里面的所有文件复制,粘贴到STM32F30x_StdPeriph_Templates文件夹里,如下图所示,然后用Keil打开并编译即可。






      当我们把USART文件夹里的USART_Printf内所有内容拷贝到STM32F30x_StdPeriph_Templates文件夹后,编译运行会在串口调试助手里看到:






USARTx 配置信息:

        -BaudRate = 115200 baud  

        - WordLength = 8 Bits

        - OneStop Bit

        - Noparity

        -Hardware flow control disabled (RTS and CTS signals)

        - Receive and transmit enabled

硬件连接:

       RX_PIN:GPIOE_1

       TX_PIN:GPIOC_1

      接下来,我们分析一下代码含义,找到时钟配置函数:

      在system_stm32f30x.c文件里的SystemInit( )是系统初始化函数,最先运行的,它的作用是FPU设定、复位关键寄存器、配置系统时钟、映射RAM中断向量表。

      SetSysClock( )是配置系统时钟函数,对内外部时钟及PLL进行了设置,用户可以在这里进行改变。







实验二 MEMS陀螺仪


       基于MEMS(MEMS是微机电系统“Micro-Electro-Mechanical Systems”的英文缩写)的陀螺仪价格相比光纤或者激光陀螺便宜很多,但使用精度非常低,需要使用参考传感器进行补偿,以提高使用精度。

       基于MEMS 技术的陀螺仪因其成本低,能批量生产,目前已经能够广泛应用于汽车牵引控制系统、医用设备、军事设备等低成本需求应用中。


1. MEMS陀螺仪工作原理

       MEMS陀螺仪利用科里奥效应测量运动物体的角速率,如下图所示。






       根据科里奥效应,当一个物体(m)沿(V)方向运动且施加角旋转速率(Ω)时,该物体将受到一个黄色箭头方向的力。然后,从一个电容感应结构可以测到科里奥效应最终产生的物理位移。


2.MEMS陀螺仪应用

       ● MEMS陀螺仪能够测量角速率。数码相机使用陀螺仪检测人手的旋转运动,能够对图像起到稳定的作用。

       ● 当汽车导航系统无法接收GPS卫星信号时,偏航陀螺仪能够测量汽车的方位,使汽车始终沿电子地图的规划路线行驶,这个功能被称之为航位推测系统。

       在汽车上,偏航陀螺仪可以开启电子稳定控制(ESC)制动系统,防止汽车急转弯时发生意外事故。当汽车出现翻滚状况时,滚转陀螺仪可以引爆安全气囊。

       ● 偏航陀螺仪还能用于室内机器人控制。

       ● 安装在机器人四肢上的多路惯性测量单元(IMU)能够跟踪和监测身体运动。


3.MEMS陀螺仪测试

       在陀螺仪校准后,应测试陀螺仪的性能,了解如何从陀螺仪原始数据中获取有价值的角位移信息。

       下面是板载陀螺仪L3GD20的特性:

       ·        Three selectablefull scales (250/500/2000 dps)

       ·        I2C/SPIdigital output interface

       ·        16 bit-rate valuedata output

       ·        8-bit temperaturedata output

       ·        Two digital outputlines (interrupt and data ready)

       ·        Integrated low-and high-pass filters with user-selectable bandwidth

       ·        Wide supplyvoltage: 2.4 V to 3.6 V

       ·        Lowvoltage-compatible IOs (1.8 V)

       ·        Embeddedpower-down and sleep mode

       ·        Embeddedtemperature sensor

       ·        Embedded FIFO

       ·        High shocksurvivability

       ·        Extended operatingtemperature range (-40 °C to +85 °C)

       ·        ECOPACK® RoHS and“Green” compliant


       打开Demonstration文件夹里的工程,main.c文件里:

       #define L3G_Sensitivity_250dps     (float)  114.285f

       #define L3G_Sensitivity_500dps     (float)  57.1429f

       #define L3G_Sensitivity_2000dps    (float)   14.285f  

       宏定义了在不同情况下的陀螺仪分辨率。


       第161行,Demo_GyroConfig( )函数对陀螺仪进行了初始化

       下面介绍陀螺仪的结构体,里面存储了关键的参数

/* L3GD20struct */

typedefstruct

{

  uint8_t Power_Mode;                        /* 电源模式选择 */

  uint8_t Output_DataRate;                     /* 输出速率     */

  uint8_t Axes_Enable;                        /* 坐标轴时能   */

  uint8_t Band_Width;                        /* 带宽选择     */

  uint8_t BlockData_Update;                   /* 快数据更新   */

  uint8_t Endianness;                         /* 大小端数据选择 */

  uint8_t Full_Scale;                         /* 分辨率选择 */

}L3GD20_InitTypeDef;


       那么,我们如何读到陀螺仪的值,通过Demo_GyroReadAngRate(Buffer)函数,在477行。在487       行,L3GD20_Read(tmpbuffer,L3GD20_OUT_X_L_ADDR,6)用于读取X轴的角度。


voidDemo_GyroReadAngRate (float* pfData)

{

  uint8_t tmpbuffer[6] ={0};

  int16_t RawData[3] = {0};

  uint8_t tmpreg = 0;

  float sensitivity = 0;

  int i =0;


/* 检测 controlregister 4 数据是大端还是小端存储的*/

L3GD20_Read(&tmpreg,L3GD20_CTRL_REG4_ADDR,1);

  /* 读取X轴的角度 */

  L3GD20_Read(tmpbuffer,L3GD20_OUT_X_L_ADDR,6);

  /* 如果是小端模式 */

    if(!(tmpreg & 0x40))

  {


    for(i=0; i

实验二 MEMS 陀螺仪.pdf

下载

161.9 KB, 下载次数: 187

从零开始学STM32F3系列单片机.pdf

下载

236.29 KB, 下载次数: 171

L3GD20_陀螺仪数据手册.pdf

下载

1.54 MB, 下载次数: 202

STM32F3用户手册.pdf

下载

1.38 MB, 下载次数: 200

MEMS陀螺仪技术简介.pdf

下载

1.93 MB, 下载次数: 173

收藏 1 评论22 发布时间:2013-2-28 11:12

举报

22个回答
归依龙井 回答时间:2017-8-2 21:42:06
学习了,谢谢楼主
有源码就更好啦
书剑飘零 回答时间:2013-2-28 12:35:48

RE:从零开始学STM32F3系列单片机--陀螺仪

很好,学习了
dlyt03 回答时间:2013-2-28 13:18:42

RE:从零开始学STM32F3系列单片机--陀螺仪

学习下
IC爬虫 回答时间:2013-2-28 23:30:40

RE:从零开始学STM32F3系列单片机--陀螺仪

看看
IC爬虫 回答时间:2013-2-28 23:52:30

RE:从零开始学STM32F3系列单片机--陀螺仪

做串口实验的时候除了ST-LINK那一条线外,还需要别USB转串口线吗?
IC爬虫 回答时间:2013-2-28 23:52:50

RE:从零开始学STM32F3系列单片机--陀螺仪

官方提供的例程和模板在哪里可以下载到呢?官方网站找不到啊。
tjCFeng 回答时间:2013-3-1 09:13:40

RE:从零开始学STM32F3系列单片机--陀螺仪

学习学习。。。。。。。。
qiaoyang123 回答时间:2013-3-1 13:26:35

RE:从零开始学STM32F3系列单片机--陀螺仪

学习学习。。。。。。。。
reayfei-119372 回答时间:2013-3-4 12:03:26

RE:从零开始学STM32F3系列单片机--陀螺仪

顶一个
sacq12 回答时间:2013-3-4 14:45:01

RE:从零开始学STM32F3系列单片机--陀螺仪

值得学习
BLUE脚印 回答时间:2013-3-5 13:44:12

RE:从零开始学STM32F3系列单片机--陀螺仪

马克一下
nemon 回答时间:2013-3-6 15:23:49

回复:从零开始学STM32F3系列单片机--陀螺仪

楼主辛苦了
liuy911 回答时间:2013-3-10 17:20:14

RE:从零开始学STM32F3系列单片机--陀螺仪

ddddddddddddddddddddd
liuyu-419812 回答时间:2013-3-10 23:28:26

回复:从零开始学STM32F3系列单片机--陀螺仪

学习了,很好。。。。
reayfei-119372 回答时间:2013-3-20 11:14:18

RE:从零开始学STM32F3系列单片机--陀螺仪

顶一个
12下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版