在linux环境下如何进行stm32的开发

发布于: 2018年11月29日 21:37:16 | 分类: STM32 | 浏览: 52

我觉得网上再好的解决方案,也没有官方给出的解决方案好。结合题主的问题,我推荐两款ST官方推荐的IDE。

  1. TrueSTUDIO + ST-Link

  2. SW4STM32 + ST-Link

两种都是免费的IDE,都基于Eclipse。

第一款,TrueSTUDIO。也是我推荐题主使用的,因为ST收购了Atollic,使得TrueSTUDIO完全免费。官网:Home - Atollic - ST。ST将来肯定会大力发展自己的IDE,官方的东西没错的。

   
TrueSTUDIO官网


Linux下载地址: Downloads for Linux - Atollic - ST ,填好信息之后下载。


第二款,SW4STM32,也是我在用的。它是AC6公司开发的。AC6与ST联合维护的社区:

OpenSTM32 Community Site | HomePagewww.openstm32.org图标

这是社区提供的一个免费工具,不是ST官方自己IDE。

同样我们来到社区官网(特别提示:要注册一个账号并登录,很简单的):

OpenSTM32 Community Site | HomePage

先登录


   
登录社区
   
OpenSTM32 Community


就在图中矩形框位置点击。



继续点。来到新页面后向下滑动,选择平台。


   
根据自己的情况选择


下载好后安装步骤很简单就不再说明。

题主应该是没使用过Eclipse,所以最后演示一个在SW4STM32下的简单的点亮LED(其实TrueSTUDIO也一样的操作)。

我是用的是 Linux Mint。打开IDE。然后快捷键:Ctrl+N新建项目,选C项目。



继续选择


   
选择AC6 STM32 MCU PROJECT


我用的是F1RCT6。

   
选择芯片


选择你使用的库,我选标准库。如果你没有下载库,不要担心它会自动提示你,你点击下载对应的库就是。


   
选择库


完成。



开始撸代码

首先在src下建立一个led驱动目录。以下是led.h

#ifndef LED_LED_H_
#define LED_LED_H_//定义要点亮的led所在的pin口
#define LED (GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_12 |GPIO_Pin_11|GPIO_Pin_10|GPIO_Pin_9|GPIO_Pin_8)
void LED_Init(void); //定义led的初始化函数#endif

LED实现。

#include "led.h"
#include <stm32f10x.h>
#include <stm32f10x_gpio.h>
#include <stm32f10x_rcc.h>

void LED_Init()//初始化函数实现
{
    GPIO_InitTypeDef GPIO_Init_type;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); 

    GPIO_Init_type.GPIO_Mode         = GPIO_Mode_Out_PP;   
    GPIO_Init_type.GPIO_Pin             = LED;                
    GPIO_Init_type.GPIO_Speed        = GPIO_Speed_50MHz;   

    GPIO_Init(GPIOB, &GPIO_Init_type);//初始化
}

主函数:

#include <stm32f10x.h>
#include <stm32f10x_gpio.h>
#include "led/led.h"

int main(void) {
    LED_Init();
    while(1)
    {
        GPIO_WriteBit(GPIOB,LED,(BitAction)0);
    }
}

代码写好后Ctrl+F11 IDE自动编译,下载,复位运行。

总结

用了这么久的SW4STM32我觉得很好用,可能是Eclipse用的太久,所以SW4STM32用起来很熟练。掌握一个IDE可以提高开发效率,在Eclipse环境下有很多快捷键可以帮你提高开发效率。

标签: Java C STM32 大学
版权声明:本文为作者原创文章,转载时请务必声明出处并添加指向此页面的链接。
分享:
发表评论

目前您尚未登录,请 登录 后进行评论

评论信息