基于嵌入式系统原型设计的STM32开放式开发环境详解

发布者:RadiantSerenity最新更新时间:2024-01-03 来源: elecfans关键字:嵌入式系统  STM32 手机看文章 扫描二维码
随时随地手机看文章

市场上涌现各种价格亲民的经济型微控制器,助力新一代开发者创造令人兴奋的新型嵌入式应用。如今的开发工具非常好用,软硬件均呈现模块化趋势,插接安装简单容易,使得产品设计评估和原型开发周期大幅缩短。STM32开放式开发环境是业内独一无二的软硬件开发平台,堆叠式插接电路板集成各种模块化硬件,同时模块化软件覆盖从驱动程序到应用层的全部软件,帮助设计人员将创意快速变成产品原型,顺利转化成最终设计。


STM32开放式开发环境是什么?

STM32开放式开发环境 是意法半导体开发的嵌入式系统原型设计开发环境,以简化嵌入式项目设计为目标,通过开源形式提供全部重要功能模块,组件包括:


-价格极低的STM32 Nucleo开发板(STM32微控制器)和STM32 Nucleo扩展板(传感器、通信接口、电机控制和致动功能),提供基于尖端商用产品的各种硬件功能。

-基于STM32Cube软件工具的STM32微控制器软件库和简单好用的软件库配置器(STM32CubeMX )。

-STM32Cube扩展软件库,支持STM32 Nucleo扩展板上各种器件,包括电机驱动器、低能耗蓝牙模块、MEMS传感器等。

-功能包:一套利用STM32 Nucleo开发板和STM32Cube软件为一些最常用用例开发的功能性例程(代码示例)。

-每个软硬件功能模块都配备描述详尽的技术文档。

-活跃的快速发展的在线开发社区


STM32 Nucleo开发板

STM32 Nucleo开发板是STM32开发环境的基础组件,板载一颗基于ARM® Cortex®-M 32位处理器内核的STM32微控制器。STM32开放式开发环境所用的STM32 Nucleo开发板是64引脚版(图1)微控制器。目前STM32 F4和STM32 L0微控制器兼容所有的STM32 Nucleo扩展板和扩展软件。

基于嵌入式系统原型设计的STM32开放式开发环境详解

图1 – STM32 Nucleo-64开发板

开发环境使用基于STM32Cube HAL(硬件抽象层) API的STM32Cube软件库,大幅降低了在不同系列的STM32产品(目前有20余款STM32 Nucleo开发板)中移植软件项目所需的编程工作量。

STM32 Nucleo-64开发板硬件具有以下特性:

-采用LQFP-64封装的STM32微控制器

-通过38引脚的Morpho连接器可以使用STM32的所有引脚

-四个Arduino连接器(位置非对称排列,引导用户正确插接Arduino兼容扩展板)

-集成ST-LINK/V2-1调试器/代码烧录器和mini USB端口,无需安装额外的调试工具,板子可直连PC机,进行调试和烧写代码操作。此外,USB接口支持虚拟COM端口和大容量存储接口(兼容ARM mbed)

-2个按键(微控制器复位信号和开发者专用按键)

-3支LED灯(5V电源、开发者专用、ST-Link调试器状态)

用户可以为板子选用不同的电源:

-5V USB供电

-5V外部电源

-外部电源VIN (7-12V)

STM32 Nucleo开发板上的5V电源还用于驱动通过Arduino或morpho连接器连接主板的扩展板,同时通过板载稳压器为STM32提供3.3V 电源。

STM32 Nucleo开发板功能性极强,板载代码烧写/调试工具非常实用,设计人员可以立即动手开发项目,而无需添置昂贵的开发工具。


基于STM32Cube的嵌入式软件和工具

在选中了最适合自己的STM32 Nucleo开发板后,下一步是下载相关的软件库,熟悉STM32技术特性和外设。最快捷的入门方式是下载软件库配置器STM32CubeMX ()。在这个工具的图形用户界面内,用户只要直接选择正在使用的STM32 Nucleo开发板(图2),配置器就会按照板子所连接的硬件设备(例如LED、按键、UART引脚分配)自动配置STM32外设。

下一步,可能需要详细配置每个外设,例如,设置UART同步/异步通信模式、波特率、寄偶校验和停止位。

基于嵌入式系统原型设计的STM32开放式开发环境详解

图 2 – STM32CubeMX: 从板子选型到外设配置,只需几步简单的操作。

最后,STM32CubeMX将生成代码,创建一个完整软件项目,且兼容所用代码编译工具链(例如IAR、Keil或Eclipse),同时配置先前在图形用户界面内所选的全部硬件和外设,并兼容所用代码调试/烧录工具。

这个图形用户界面工具让你从零开始创建项目,几分钟完成项目所需的全部配置,然后立即动手创建自己的软件项目,直接在main.c文件里写代码。

基于嵌入式系统原型设计的STM32开放式开发环境详解

图3 – STM32Cube软件库的层次

所生成的代码位于STM32Cube嵌入式软件之上,STM32Cube有两个主层(图3):

-硬件抽象层:准许上面的软件层(例如,中间件层)执行各自的功能,而无需开发人员深入了解如何使用微控制器

-中间件:一整套中间件组件(RTOS, USB, TCP/IP, …)

软件设计采用模块化方法,用户在项目开发过程中可以随时添加软件模块,轻松地跨系列移植全部项目。


STM32 Nucleo扩展板

为连接STM32 Nucleo扩展板,STM32 Nucleo-64开发板配备两种连接器:

-兼容Arduino标准的Arduino连接器(微控制器的32个引脚都在这个连接器上)。

-Morpho 连接器,可以连接STM32微控制器的全部引脚(76个引脚都在这个连接器上)。

STM32 Nucleo扩展板让设计人员像搭积木一样,在主板上插接多块不同功能的子板,创建一个完整的应用系统。目前意法半导体网站() 上有20余款扩展板(图4)在售,按功能划分,可以分为五类:

-感测:MEMS 9轴运动传感器; 压力传感器,环境传感器,接近检测传感器; MEMS麦克风

-连接: 低能耗蓝牙、Wi-Fi、NFC和Sub-GHz射频;

-电机控制/致动: 直流电机驱动器、步进电机驱动器、3相直流无刷电机驱动器

-输入/输出: I/O模块(家庭自动化和工业自动化)

-信号调理: 运算放大器

基于嵌入式系统原型设计的STM32开放式开发环境详解

图4 – 各种型号的STM32 Nucleo扩展板

STM32 Nucleo板功能扩展方法类似于Arduino和Raspberry Pi解决方案,便于设计人员快捷开发产品原型。利用这些连接工具,可以将扩展板堆叠插接在主板上,给系统增添新的功能,唯一不足之处是,堆叠式连接方法受限于微控制器外设的使用方式,这个问题的解决方法是,使用I2C和SPI总线替代UART等速度慢的数据总线,这样可提高同一总线上所连接设备的数量。此外,Arduino连接器不对称排列设计可有效防止STM32 Nucleo扩展板连接方向错误,降低电源连接错误损坏设备的风险。扩展板使用STM32 Nucleo开发板上LDO稳压器通过板上5V电源生成的3.3V电源,用户可以使用跳线(JP5)为开发板选择USB 5V电源或外部E5V电源。有些扩展板需要更高的电压,例如,电机驱动器和I/O扩展板,因此,开发板上还增加一个电源连接器,利用外部电源驱动负载,提供更高的电压Vbus(最高45V)。


为安全起见,多数扩展板是为低功率应用设计,50V以下电压在电源极性接反或短路时可以降低板子烧毁风险,所以适合初学者和学生使用。


这些低功耗的扩展板还可以单独连接高压高功率的电机控制扩展板,但是,我们只建议电机控制专业人士选用这种配置。为了便于区分,我们将高功率STM32 Nucleo扩展板涂成绿色,其余的扩展板全都是蓝色。高功率电机控制扩展板兼备高压高功率扩展板和低压扩展板的双重优点,在电机控制应用中轻松增加数据通信功能,例如,使用射频技术远程驱动高压电机或使用低能耗蓝牙或Wi-Fi获取电机驱动信息和远程记录失败数据。


关键字:嵌入式系统  STM32 引用地址:基于嵌入式系统原型设计的STM32开放式开发环境详解

上一篇:Arm®v7-M 架构的 STM32 如何启用 DWT进行计数
下一篇:使用STM32H563开发板简单演示DMA 2D模式的应用

推荐阅读最新更新时间:2024-11-13 08:48

STM32之CAN---配置波特率
1 位时间特性 为了掌握如何设置STM32 CAN的波特率,首先我们得先了解一下位时间特性。 位时间特性逻辑通过采样来监视串行的CAN总线,并且通过跟帧起始位的边沿进行同步,及通过跟后面的边沿进行重新同步,来调整其采样点。 它的操作可以简单解释为,如下所述把名义上的每位的时间分为3段: ● 同步段(SYNC_SEG):通常期望位的变化发生在该时间段内。其值固定为1个时间单元(1 x tCAN)。 ● 时间段1(BS1):定义采样点的位置。它包含CAN标准里的PROP_SEG和PHASE_SEG1。其值可以编程为1到16个时间单元,但也可以被自动延长,以补偿因为网络中不同节点的频率差异所造成的相位的正向漂移。 ● 时间段2(BS2)
[单片机]
<font color='red'>STM32</font>之CAN---配置波特率
STM32无法正常输出PWM信号的原因及解决方法
PWM(Pulse Width Modulation)脉宽调制技术在嵌入式系统中应用广泛,可以控制电流或电压的大小,从而实现对电机转速、亮度等的调节。然而,在使用STM32系列微控制器时,有时会遇到无法正常输出PWM信号的问题。本文将探讨STM32无法正常输出PWM信号的原因,并提供解决方法。 一、引脚配置错误 STM32微控制器的每个IO引脚都有多个功能,包括GPIO、UART、SPI、PWM等。正确配置PWM功能的引脚是实现PWM输出的第一步。首先,检查引脚是否使用了正确的模式和功能。其次,确认引脚的时钟使能是否正确。通过使用寄存器操作来确保引脚的正确配置。例如,通过RCC/APBxENR和GPIOx_MODER等相关寄存
[单片机]
STM32自带温度传感器
F4的芯片有自带的温度传感器 测量范围是-40到125摄氏度,误差1.5 数据手册上的说法,温度的测量是通过ADC端口进行的。 配置外部时钟 时钟树我配置主频为168M 生成工程。 在主函数加上几句话 while (1) { HAL_ADC_Start(&hadc1); HAL_ADC_PollForConversion(&hadc1, 50); if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC)) { AD_Value = HAL_ADC_GetValue(&hadc1); AD_Value = (AD_Value*3300
[单片机]
<font color='red'>STM32</font>自带温度传感器
stm32控制4位数码管_stm32控制共阴数码管
1、stm32控制4位共阳数码管输出计数 用stm32控制4位数码管,需要用到GPIO口 PA0~PA11共12个引脚。首先我们来看看数码管的原理图。 因为是共阳所以12,9,8,6为电源输入,其他引脚均为接地,所以对于芯片来说12,9,8,6高位输出,其他设定为低位即可。 //设定下GPIO口 void GPIO_Num_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE
[单片机]
用<font color='red'>stm32</font>控制4位数码管_<font color='red'>stm32</font>控制共阴数码管
再造STM32---第二十一部分:串行FLASH文件系统 FatFs
21.1 文件系统简介: 使用SPI FLASH直接存储数据: 当需要记录字符“STM32-F429 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。 • 难以记录有效数据的位置 • 难以确定存储介质的剩余空间 • 不明确应以何种格式来解读数据 Windows上的文件系统: 文件系统,就是对数据进行管理的方式。使用文件系统可有效地管理存储介质。 文件系统在计算机中的表现形式: 磁盘的物理结构:
[单片机]
再造STM32---第二十一部分:串行FLASH文件系统 FatFs
意法半导体发布全新STM32超值系列微控制器
基于ARM® Cortex™-M0的STM32F030超值系列微控制器让成本敏感型应用受益于32位优势 中国, 2013年7月11日 —— 横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)发布最新的STM32F030超值系列微控制器。批量订货最低价仅为0.32美元,STM32F030是低预算项目的理想选择,同时还让设计人员有机会使用型号齐全且软硬件兼容的32位微控制器产品组合,从而提升应用性能,扩大产品系列。 全新STM32F030超值系列基于48MHz的ARM® Cortex™-M0处理器内核。与同类竞争产品不同,STM32F030虽然只有8位
[单片机]
STM32中3个延时函数
第一个延时函数: void delay(u16 num) { u16 i,j; for(i=0;i num;i++) for(j=0;j 0x800;j++); } eg:delay(50); 第二个延时函数: void Delayms(u16 ms) { u16 i,j; u8 k; for(i=0;i ms;i++) for(j=0;j 0x0500;j++) k++; } 第三个延时函数: static u8 fac_us=0;//us延时倍乘数 static u16 fac_ms=0;//ms延时倍乘数 //初始化延迟函数 //SYSTICK的时钟固定为HCLK时钟的1/8 //SYSCLK:
[单片机]
STM32开发笔记24:STM32L0低功耗设计——需求概述
单片机型号:STM32L053R8T6 这几篇日志将详细记录,自己应用stm32进行低功耗设计的全过程。 使用芯片:STM32L053R8T6 运行模式: Range 1:电源电压限制在1.71-3.6V,CPU最大运行频率为32MHz。 Range 2:CPU最大运行频率为16MHz。 Range 3:CPU最大运行频率4.2MHz 低功耗模式: Sleep mode(睡眠模式)、Low-power run mode(低功耗运行模式)、Low-power sleep mode(低功耗睡眠模式)、Stop mode with RTC(带有RTC的停止模
[单片机]
<font color='red'>STM32</font>开发笔记24:STM32L0低功耗设计——需求概述
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved