一、stm32cubemx安装
1、安装jave的jdk。选择window版本。
链接:https://www.oracle.com/java/technologies/javase-downloads.html
2、安装stm32cubemx.
链接:https://www.st.com/en/development-tools/stm32cubemx.html
这里我安装的是最新版本6.3.0。
下载之后解压打开。如下
点击next。然后点击同意,再点击next。
此处第一项必须勾选,第二项选择勾选,跟一些调查有关。再之后直接点击next,直到安装完成。
3、安装固件库
打开下载的stm32cubemx,选择help,再选择manage。
选择需要的固件库,为了方便点击install Now,直接在线下载,也挺快的。
二、通过HAL实现流水灯
1、建立工程
点击file,选择New Project
选择芯片型号,点击start project。
配置系统调试接口sys,点击System Core中的sys,Debug选择Serial Wire。
然后配置引脚功能,选择GPIO。这里直接点击需要的引脚进行选择就行。
再次点击单个引脚进行设置。
GPIO output level:有low和high两种选择,一般选择low
GPIO mode:推挽输出和开漏输出两者模式,两者模式的区别在于推挽输出中1代表VCC,0表示GND;开漏输出中1代表高阻态,0代表GND。
GPIO Pull-up/Pull-down:输入需要上下拉,输出一般没有上下拉
Maxinum output speed:最大的输出速度,一般选择low就可以了。
User Label:软件生成代码的IO口宏定义名称,设置后可以方便移植
2、生成工程代码。
设置工程名及编译环境等。
然后还可以配置生成选项。
然后点击生成代码,并打开工程。
可看见在gpio.c文件里有我们定义的端口。
在main.c函数中的while插入自己的函数。
代码如下:
HAL_GPIO_WritePin(led2_GPIO_Port, led2_Pin, GPIO_PIN_RESET);
HAL_Delay(1000);
HAL_GPIO_WritePin(led2_GPIO_Port, led2_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(led1_GPIO_Port, led1_Pin, GPIO_PIN_RESET);
HAL_Delay(1000);
HAL_GPIO_WritePin(led1_GPIO_Port, led1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(led0_GPIO_Port, led0_Pin, GPIO_PIN_RESET);
HAL_Delay(1000);
HAL_GPIO_WritePin(led0_GPIO_Port, led0_Pin, GPIO_PIN_SET);