1. 前言
大一的时候我使用 Keil5 作为 STM32 和 51单片机的 IDE,但是使用过 Keil5 的都能发现,这个根本不是现代的编译器,啥代码提示,啥点击跳转,都没有,而且还中文显示特别奇怪,大二就有想法使用Eclipse 和 CDT,来编写 STM32。网上有很多的参考,但是我再 Linux 下的却没有成功过,于是就放弃了。大约到了大三,有门课程要用到 STM32,但是老师还是使用 Keil 进行教学,但是有一次被 Keil 给折磨了一次,折磨完后又开始找办法,终于有一次看见 TrueSTUDIO 支持 STMN32 并且是在 Eclipse 上开发的,我曾使用过 Eclipse 编写 Android,有很多的地方能在 TrueSTUDIO 中借鉴。
2. 下载
TrueSTUDIO 曾经是付费的,现在是免费的。
网址为:https://atollic.com/truestudio/,可以进行下载。
3. 安装
Windows 安装并不麻烦,基本是选择默认选项就行。
4. 制作项目
True STUDIO 和 Keil5 有些不同,比如创建项目,True STUDIO 可以下载从项目商店进行下载一写官方的例程。方式如下:
-
文件 => 新建 => 从 TrueSTORE 下载新的事例项目
有一些示例代码,可以参考。
- 文件 => 新建 => C Project 进行自定义新建项目
选择 Embedded C Project 然后 下一步。
选择 自己的机型,我是新手,一般使用 F103 ,就能满足要求。
选择标准库(但是两个选项好像没有多大区别,也就不用在意)
选择调试配置器,我自己买了一块野火的开发板,带有一个 JTAG,但是不能用,估计要重新买,现在使用 TrueSTUDIO 进行编写代码,使用 Keil5 烧录。(凉凉)但是据说 ST-Link v2 比较便宜,打算入手一块。
点击完成
5. 解析 新项目
可以看出新建的项目并不是全部是空的,而是似乎把一些默认的选项给设置好了,类似于 Keil 中的模版,看看是不是这么回事吧。
一个个来介绍:
Binaries: 生成的二进制文件,内含有编译文件(.elf)文件
Includes:包含文件,该处是整个项目中指定库文件位置产生的链接,简单理解就是,.h 头文件在编译的时候并不会被链接到,只有在项目中指定 .h 头文件的路径才能被链接到,includes中就是显示了被链接到的路径名称。也就是自己写的 .h 文件要设置过,才能被编译到。
Libraries:固件库文件夹,含有两个文件夹 CMSIS 与 StdPeriph_Driver
Libraries/CMSIS:与片内寄存器相关,有代表性的如下:
stm32f10x.h 外设头文件
system_stm32f10x.h STM32时钟配置
core_cm3.h 内核寄存器映射
Libraries/STM32F10x_StdPeriph_Driver:与外设相关,有代表性的如下:
|-misc.h 外设对内核中的NVIC 的访问
|-stm32f10x_adc.h ADC(模数转换)库函数
|-stm32f10x_bkp.h bkp()
|-stm32f10x_can.h can(CAN总线)
|-stm32f10x_cec.h cec
|-stm32f10x_crc.h crc
|-stm32f10x_dac.h dac(数模转换)
|-stm32f10x_dbgmcu.h dbgmcu
|-stm32f10x_dma.h dma(DMA)直接存储器访问
|-stm32f10x_exti.h exti 外部中断事件控制器
|-stm32f10x_flash.h flash
|-stm32f10x_fsmc.h fsmc
|-stm32f10x_gpio.h GPIO(引脚口)
|-stm32f10x_i2c.h IIC(IIC总线)
|-stm32f10x_iwdg.h iwdg(独立看门狗)
|-stm32f10x_pwr.h pwr(睡眠模式)
|-stm32f10x_rcc.h rcc
|-stm32f10x_rtc.h rtc(实时时钟)
|-stm32f10x_sdio.h sdio
|-stm32f10x_spi.h spi(SPI总线)
|-stm32f10x_tim.h TIM(滴答时钟)
|-stm32f10x_usart.h USART(串口通信)
|-stm32f10x_wwdg.h wwdg(窗口看门狗)
由于自己也是弱鸡,所以库函数也没认全。
src:一些启动项目,比较重要的有:
main.c 主函数
startup_stm32f10x_hd.s 启动文件
stm32f10x_conf.h 包含所有的 .h 文件
stm32f1xx_it.c 与中断向量有关
system_stm32f10x.c 上面介绍过了相关的 .h 与 系统时钟相关
6. 进行编译
上面的目录中有一个 Debug 文件夹,就是与编译相关。
点击第一个锤子,进行 Debug 编译,
编译成功,可以点击最后一个小锤子,将 编译模式更改为 Release 模式。
再次进行编译。就会生成 Release 目录。
7. 烧录
由于资料有限,还没进行烧录成功过,一直显示 SEGGER JTAG 未匹配,打算重新买个 ST-LINK v2 进行尝试,关于bilibili 上有个视频,谈到只下载不调试。可以作为参考。
True STUDIO 只下载不调试
8. 关于后续
后续我将会按照我熟悉的库文件,进行一个个讲解。