步骤1:安装必需的软件
首先,安装必需的软件。
为ARM安装gcc编译器:
gcc编译器包含用于编译,链接和构建MCU的构建代码的工具。安装以下三个软件包:
gcc-arm-none-eabi
binutils-arm-none-eabi
libnewlib-arm-none-eabi
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
安装STM32CubeMX
STM32CubeMX是用于生成C项目的基于Java的工具。借助此工具可以配置使用过的MCU的所有部分,例如USART,I2C,SPI,GPIO,TIMx,。..。
网页:www.st.com/stm32cube
CubeMX工具具有Linux支持。易于安装:
下载并解压缩zip文件
运行安装程序
遵循向导
取决于您的ST32硬件(STM32F0,STM32F10x 。.. |),您需要为MCU下载库。运行STM32CubeMX并单击“帮助”-》“安装新库”。从列表中为您的MCU选择最新的库。
安装Makefile4CubeMX
从CubeMX项目生成Makefile需要使用Makefile4CubeMX。
下载链接:github.com/duro80/Makefile4CubeMX
如何安装:
git clone https://github.com/duro80/Makefile4CubeMX.git
sudo ln -s“ $ PWD“/CubeMX2Makefile.py/usr/bin/CubeMX2Makefile.py
安装代码:: Blocks IDE
要安装Code :: Blocks IDE,请使用您的软件包管理器。在Ubuntu下可用的版本是13.12-3:
sudo apt-get install codeblocks
安装stlink
stlink是用于将构建的代码下载到MCU(闪存)的程序。由texane维护的inux版本,位于github:github.com/texane/stlink。此处介绍了安装过程。如果您喜欢二进制文件,则最新版本在这里:github.com/texane/stlink/releases。
步骤2:设置代码:: Blocks IDE
要为ARM处理器编译并构建自己的程序,必须设置C :: B IDE。在“设置-》编译器。..”中:
在左窗格中选择“全局编译器设置”
在顶窗格中选择编译器:ARM的GNU GCC编译器
在中心窗格中,选择“工具链可执行文件”选项卡并填写以下值:
编译器安装目录:/usr
C编译器:arm-none -eabi-gcc
C ++编译器:arm-none-eabi-g ++
动态库链接器:arm-none-eabi-gcc
静态链接器库:arm-none-eabi-ar
调试器:现在可以为空
make程序:make
Step 3:创建STM32CubeMX项目
在启动项目之前,请检查是否存在特定库MCU。在菜单帮助-》安装新库中,检查所需的库(在我的情况下为STM32F0版本1.5.0)。单击“立即安装”将库安装到本地存储库中。
下一个项目将用于STM32F0 MCU。
创建新项目
有两种可能:通过选择MCU来创建新项目
,通过选择STM板
。
在“新建项目”对话框中选择“系列”: STM32F0,行:STM32F0x0价值行。从列表中选择STM32F030F4Px
出于测试目的,将PA0引脚检查为GPIO_Output。
设置项目属性
单击项目设置:菜单Project-》 Settings。 。.
键入项目名称(例如InstructableF0)
更改项目位置(如果需要)
工具链/IDE:选择SW4STM32
取消选中“根据根生成”
单击“确定”
生成C代码
单击“项目”-》“生成代码”以生成空项目
步骤4:生成Makefile和C :: B项目
要生成Makefile和Code :: Block项目,即Makefile4CubeMX
打开生成CubeMX项目的目录,并在其中打开终端。类型:
CubeMX2Makefile.py 。
在工作目录中将生成文件:Makefile,InstructableF0.cbp(此文件的名称取决于CubeMX项目名称)
Step 5:编写并构建程序
打开项目InstructableF0.cbp并打开main.c文件。
现在,我们可以做一点代码了。让我们切换端口PA.0来演示工作代码。
int main(void){
/* MCU Configuration-------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1) {
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0);
HAL_Delay(500); // 500ms
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
构建代码以验证我们代码的正确性:Build-》 Rebuild(Ctrl + F11)
步骤6:连接硬件
准备硬件:
连接stlink-v2加密狗与您的电路板
将LED二极管连接到端口PA0(串联到150欧姆或更高的电阻)
构建
在Code :: Block中,在编译器工具栏中选择“发布”。
选择“重建”(Ctrl + F11)。重建后,代码会自动加载到MCU
LED二极管开始闪烁。
您也可以在不使用Code :: Block IDE的情况下使用Makefile。
在工作目录(放置Makefile的目录)中打开终端,然后键入:
内部版本代码:
make
闪存代码到MCU: