目录
实验材料
STM32F103C8T6开发板
Typec数据线
有数据功能即可
固件下载器
如:stlink,daplink,jlink等(图为适配上图开发板引出烧录接口)
软件准备
Stm32cubemx
下载地址:STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics
keil5 ARM
下载地址:MDK-ARM Version 5.41 Evaluation Software Request
stm32cubemx配置
建立工程
MCU型号选择
此处参照开发板的芯片选用STM32F103C8T6
时钟配置
开启外部时钟和外部低速时钟
调试模式开启
教程使用STlink为烧录器,使用SW调试方式,故使用Serial Wire。此处相当重要,如果没有开启调试接口烧录后可能会变砖,需要从Boot Loader启动重新烧录正常固件才能复原。
选择GPIO并开启输出
具体设置处,首次可以先使用默认设置
输出模式 Push Pull推挽输出,高低电平皆可驱动,适用于本实验的led驱动
Open Drain 开漏输出,只输出低电平,高电平的输出需要外部上拉电阻,例如IIC通讯
生成工程文件
对工程命名,选择路径,选择IDE为MDK-ARM即keil5。
设置完后右上角蓝色按钮建立工程即可
KEIL5设置
工程目录结构
代码写入
代码框架为stm32cubemx生成,故代码需要按照格式书写在每组begin和end之间才不会被覆盖
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
HAL_Delay(500);
}
/* USER CODE END 3 */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
GPIOC,IO的组别,使用的IO是PC13故选择GPIOC
GPIO_PIN_13,IO号,PC13故13
GPIO_PIN_SET 高电平or低电平设置,SET为高电平,RESET为低电平
HAL_Delay(500);
500ms的延时
这两个函数皆为HAL库提供的函数,免去了寄存器操作的痛苦
调试器设置