本帖最后由 reayfei 于 2013-1-21 11:31 编辑
从零开始学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,一个小小的演示完成了,很炫吧! 注意:安装完软件后,需要重新启动电脑才能生效。
官方提供了例程和模板如图:
打开模版里的工程,选择的是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进行了设置,用户可以在这里进行改变。
|