选择STM32CubeMX和SW4STM32的原因:因为都支持Linux啊,这就够了!
STM32CubeMX:可快速生成Project,用户可以直接使用图形化工具对外设进行配置,而它会自动生成相应初始化代码。
SW4STM32:基于eclipse的IDE,用惯了java,感觉其实eclipse还是蛮好用的,就是运行起来慢了点!
1 软件安装
1.1 安装Java运行环境
由于STM32CubeMX和SW4STM32都是Java写的,所以需要安装JRE才能运行。
直接用apt安装:
$ sudo apt install openjdk-8-jre
1.2 安装STM32CubeMX
由于STM32CubeMX官网下载需要先注册,而我又不想注册,毕竟想到当年公司刚开始用STM32时,同事在评估各个开发工具时,在某工具官网填写相关信息下载试用后,就收到了这公司的推销电话,而我早就不做这行了,也不想接这类电话,所以还是多一事不如少一事!
我是参考了STM32CubeMX介绍、下载与安装这篇博客,在博主提供的百度网盘下载的。
下载解压后直接双击SetupSTM32CubeMX-4.22.0.linux进行安装。
刚开始双击后毫无反应,于是又在终端里试了下,提示如下错误:
$ ./SetupSTM32CubeMX-4.22.0.linux
bash: ./SetupSTM32CubeMX-4.22.0.linux: No such file or directory
网上搜了下,这是因为64位系统运行32位程序但又缺少32位库引起的,那么就先安装libc6-i386
$ sudo apt install libc6-i386
再运行就OK了。
安装过程比较简单,就略过了。
安装完成后是不能直接使用的,我们还需要为其安装相关库文件。
这个库是用于配置和管理STM32的,无论你用的哪款STM32芯片都要安装。
接下来是和芯片相关的库,不同系列的芯片安装的库也不一样,以STM32F103C8T6为例,就需要安装STM32CubeF1 Releases的库。
完成后重启STM32CubeMX就可以了。
1.3 安装SW4STM32
图形界面安装需要先安装gksu
$ sudo apt install gksu
我双击文件无反应,只好在终端执行
$ ./install_sw4stm32_linux_64bits-v2.1.run
安装完成后,初次建project时会提示使用标准库还是HAL库,我们使用HAL库。
2 开始使用
我用的是STM32F103C8T6,因此也以此芯片为例。
2.1 使用STM32CubeMX生成一个Project
点击File -> Now Project,进入如下界面,搜索对应芯片型号并创建project。
然后就来到了如下界面:
按下图进行配置
RCC:外部晶振
SYS:配置调试引脚
USART1:用于输出log进行 调试
LED:板子上的LED灯,单击管脚 -> GPIO_Output,再右击管脚编辑label
再切换到Clock Configuration页面,设置时钟为72M
再来看Configuration页面,这里面可对我们使能了的模块进行配置,如USART波特率等,我们都保持默认值。
最后一页是功耗计算,暂时不管它。
接下来就是生成代码了,先进行一些设置: Project -> Settings
然后生成code:Project -> Generate Code
2.2 SW4STM32使用
SW4STM32的使用没啥好说的,用过eclipse的都会用,主要是记录一下使用ST-LINK V2烧写程序时遇到的问题。
写好代码后,直接Run,本以为会神奇地跑起来,但eclipse却向我弹出一个窗口,并报了一堆错误。
感觉像是权限问题,然后就试了试用sudo运行SW4STM32,抱着慢慢希望点了下Run,结果还是出错。
从错误提示可发现是因为不能给板子复位,然后就按网上说的把ST-LINK的RESET和板子的RESET连接起来,不过还是不行!
网上也有说可以修改cfg文件中的reset_config来解决,但我修改后再build时却又被恢复成默认值了。
就在我快要放弃的时候,突然脑子一抽,试了试在点击Run后,手动复位,居然烧写成功了,谢天谢地,菩萨保佑,哈哈!
总结一下,还是以sudo运行SW4STM32,然后点击Run -> Run,当然,点击工具栏图标也可以,约1秒后对板子进行手动复位(这个间隔时间要多练几次才好掌握),烧写成功!
虽然烧写成功后还是不能复位,不过没关系,我们手动给它复位一下就行了。
最后,又在Ubuntu左侧启动栏中添加了个以sudo启动SW4STM32的快捷方式。