用于STM32开发的IDE有很多,ST公司的网站上足足列出了19个,其中,常用的商业版软件有:
MDK-ARM-STM32
IAR-EWARM
这两个商业版软件虽然好用,但终究是商业版软件。免费或评估版的软件要么有器件型号限制,要么有程序容量限制。
免费的STM32开发IDE有很多,基本上都是基于Eclipse+GNU GCC的。
网上有教程介绍如何手工用Eclipse + GNU GCC搭建STM32开发环境的,但是过程比较麻烦,而且因为版本的差异,各个教程的内容有差异,本人做了多次尝试都没有配置成功。
现在STMicroelectronics公司主推HAL+STM32CubeMX的开发方式,STM32CubeMX软件可以可视化地进行芯片资源和管脚配置,并且生成项目所有源程序。目前,STM32CubeMX导出项目支持的IDE或工具链如下图
图中可见免费的IDE只有TrueSTUDIO和SW4STM32这两种,这两种IDE都是基于Eclipse的,安装程序集成了完整的STM32开发需要的各种插件,无需自己做额外的配置。
本人实际安装了这两种软件,并用STM32CubeMX生成一个简单的GPIO控制LED的项目,用开发板进行了测试,发现SW4STM32的Debug很有问题,很简单的程序在DEBUG时就出现死的情况,而相同功能的程序在MDK和TrueSTUDIO里没有问题。
TrueSTUDIO能和STM32CubeMX很好的融合,程序编译、下载和调试都没有问题。
最关键的是:出品TrueSTUDIO的Atollic公司现在被STMicroelectronics收购了。
Atollic官网首页显示如下。
TrueSTUDIO现在完全免费了,STMicroelectronics公司将来必定大力发展自己的IDE工具TrueSTUDIO,STM32CubeMX对TrueSTUDIO的支持也必定是没问题的。这样的情况下,其他基于Eclipse+GCC的免费IDE对于TrueSTUDIO就没有什么优势了。
System Workbench(即SW4STM32)是AC6公司开发的,与STMicroelectronics联合维护的Open STM32 Community社区提供的一个免费工具,算不得是STMicroelectronics官方的开发工具。
另外还有一个免费的开发工具是CooCox的CoIDE,这是在ST官网上列出的IDE里排在第一位置的,也是基于Eclipse+GCC的。除了一个IDE环境,还有用于器件可视化配置的CoSmart,类似于STM32CubeMX(但是目前CoSmart不支持STM32系列器件,只支持Holtek、Nuvoton的器件)。CooCox的系列工具功能虽然比较全面,但是STM32CubeMX导出项目不支持CoIDE,在开发效率上显然不如STM32CubeMX支持的几种IDE。
因为是要针对一个STM32F4的开发板开发一些教学实例,经过各种测试比较,最终选择TrueSTUDIO作为STM32开发工具。
关键字:STM32 开发IDE 比较与选择
引用地址:
几种STM32开发IDE的比较与选择
推荐阅读最新更新时间:2024-11-12 22:48
【STM32】RTC实时时钟概述、寄存器、库函数(RTC一般步骤)
STM32F1xx官方资料: 《STM32中文参考手册V10》-第16章 实时时钟(RTC) RTC实时时钟 RTC实时时钟简介 实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。 BKP备份寄存器简介 备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份域里,当Vdd电源被切断,他们仍然由Vbat维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们
[单片机]
STM32值系统时钟初始化程序设计
正如之前文章所述,在使用外设功能时,都必须提前对其精心初始化才能使用其功能。 以下是系统定时器初始化的程序清单。 #include stm32f10x_lib.h unsigned char sys_nub;//系统定时器中断计数变量 //SysTick 设置 void Systick_Config(void) { //失能SysTick定时器 SysTick_CounterCmd(SysTick_Counter_Disable); //失能SysTick中断 SysTick_ITConfig(DISABLE); //设置SysTick时钟源 SysTick_ClockSourceConfig(SysTick_Source_HC
[单片机]
stm32初始化三个串口
serial.c #include serial.h int fputc(int ch,FILE *p) //在使用printf时系统自动条用此函数 { USART_SendData(USART2,(u8)ch); while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET); return ch; } /******************************************************************************* * 函 数 名 : serial_in
[单片机]
STM32之实时时钟和备份寄存器介绍
在本文中主要讲述RTC寄存器的配置问题。在配置RTC寄存器的时候必须配置RTC_CRL寄存器中的CNF位,使得RTC进入配置模式之后,才能写入RTC_PRL,RTC_CNT,PTR_ALR寄存器。另外很重要的是,在对RTC任何寄存器的写操作,都必须在前一次写操作结束后进行,可以通过查询RTC_CR寄存器中的RTOFF状态位,判断RTC寄存器是否处于更新中。仅当RTOFF状态位是1时,才可以写入RTC寄存器。 配置RTC寄存器的过程如下: 1.查询RTOFF位,知道RTOFF的值为1. 2.置CNF值为1,进入配置模式。 3.对一个或者多个RTC寄存器进行写操作。 4.清除CNF标志位,退出配置模式。 5.查
[单片机]
一个简单逆向stm32固件程序的实例分享
本文主要跟大家分享一个简单逆向stm32固件程序的实例,为了让大家在一款成熟的产品中去考虑加密这一块的技术,不然分分钟被别人copy! 1、情景再现 咬金,你们公司固件程序有加密处理吗 ? 额~,算了吧,我们公司的单片机程序炒鸡简单的,还加啥子密。 你这想法不对,假如产品卖得很好,如果没有任何加密措施,那岂不人家随便复制售卖。 没关系吧,反正他们没源码,应该也没那么容易复制吧 一点加密都没有,盗取还是比较简单的。 我才不信~~ 那行,把你的板子给我,不用你的源码,跟你把波特率改了! 直接读取固件 这里以stm32单片机进行演示,如果MCU没有做flash读取或者熔断保护,则可以通过jlink等烧写工具直接读取其Flash上的固
[单片机]
STM32 关于USART接收中断的BUG和注意事项
今天在使用USART模块,遇到了一些问题并解决了,于是发贴共享。 问题描述: 在使用USART做串口通讯时,我只把接收中断打开,并设置抢占优先级为最低一个级别,而接收中断上一个优先级处理事情比较多,可能占用了2ms时间。当我使用9600波特率往下位机发送数据,速度非常快,就是一直按回车发!问题就出来,不到1分钟时间,通讯没有反应了。USART配置代码如下: void uart_config(void) { USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = UART_GetBaud(BaudRate); USART_In
[单片机]
STM32入门学习之ADC(STM32F030F4P6基于CooCox IDE)
#include stm32_lib/inc/stm32f0xx_rcc.h #include stm32_lib/inc/stm32f0xx_adc.h #include stm32_lib/inc/stm32f0xx_gpio.h int main(void) { //时钟配置 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE); //ADC IO配置,此处定义PA0口为ADC端口 GPIO_InitTypeDef PORT_ADC; PORT_AD
[单片机]
ST宣布量产STM32 F0系列入门级MCU
意法半导体(ST)近日在北京媒体沟通会上宣布,开始量产基于ARM Cortex-M0处理器内核的入门级STM32 F0系列32位MCU。其适于工业控制器、家庭自动化、打印机和白色家电等应用。
STM32 F0的主要特性包括:①工作频率48MHz时,性能为38DMIPS,独立第三方评测机构的CoreMark评分为68;24MHz时,22DMIPS,CoreMark39。11项外设映射在5通道的DMA,结合总线矩阵,使闪存中执行代码与DMA数据传输同步操作。
②四个低功耗模式包括5.3μA停止模式,实时时钟运行的2.8μA待机模式,电池供电模式下且实时时钟运行时0.4μA。1.8V/2-3.6V电源电压。功耗效率如图1所示。
[单片机]