1、打开 STM32CubeMX,点击File
栏目,点击New Project
:
或者在主界面New Project
中点击ACCESS TO MCU SELECTOR
:
2、搜索并选择要使用的 stm32 芯片型号,点击Start Project
:
3、点击System Core
,点击SYS
选择仿真方式,此处我使用ST-Link
仿真,选择如下:
4、配置时钟源:这里使用外部晶振(外部时钟源):
可以看到图中芯片相应的引脚变为绿色
5、配置时钟:选择Clock Configuration
栏目:
此处我使用的是STM32F10X
系列的芯片,推荐最高主频是72MHZ
。此处我们配置时钟树,把外设时钟配置到72MHZ
(部分外设时钟最大频率不达到72MHZ
,需作出相应更改),如:
6、引脚配置:
我的开发板是STM32F103RCT6
,LED 对应的引脚为PA8
和PD2
,先定义引脚,选择引脚为GPIO_Output
:
配置引脚,此处我们选择默认输出低电平
、推挽输出模式
、既不上拉电阻也不下拉电阻
、低速
:
7、配置工程属性:
勾选generate peripheral initialization as a pair of ".c/.h" files per peripheral
:
作用: 外围设备的初始化将会为每个外围设备生成一对“.c/.h”文件
8、生成工程代码
点击GENERATE CODE
:
9、打开工程:
10、编写代码:
写代码前可以先把工程编译一下,看看能否编译成功,以确保不会出现个人代码以外的错误
GPIO 端口控制基础函数:
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
/* GPIO 电平输出函数 */
/*
GPIOx 参数: 目标引脚的端口号
有 GPIOA ~ GPIOG
GPIO_Pin 参数:目标引脚的引脚号
有 GPIO_PIN_1 ~ GPIO_PIN_15
PinState 参数:
GPIO_PIN_SET 高电平
GPIO_PIN_RESET 低电平
*/
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
/* GPIO 电平翻转函数 */
/*
GPIOx 参数: 目标引脚的端口号
有 GPIOA ~ GPIOG
GPIO_Pin 参数:目标引脚的引脚号
有 GPIO_PIN_1 ~ GPIO_PIN_15
*/
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
/* GPIO 检测输入电平函数 */
/*
GPIOx 参数: 目标引脚的端口号
有 GPIOA ~ GPIOG
GPIO_Pin 参数:目标引脚的引脚号
有 GPIO_PIN_1 ~ GPIO_PIN_15
返回值: GPIO_PIN_RESET
GPIO_PIN_SET
*/
打开main.c
,选择好写入代码的位置:
写入代码参考:
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);