写在前面:最近在看江协科技的STM32入门课程,因为这是基于标准库函数的,特学习利用CubeMx的hal库,当个笔记。
一、硬件准备
STM32F103C8T6最小系统板,面包板,杜邦线,STlink下载器,一个LED灯。
二、新建工程
1、 双击CubeMx图标,进入页面后,点击
2、选择型号
3、进入工程具体配置
红色字
1为外设资源选择
A->Z和Categories为不同的排列方式,可任意选择
2为外设配置,如GPIO的默认电平,工作模式等。
3为管脚浏览和配置。
本次只用到GPIO,后续外设学习到了对应的知识点后再介绍。
4配置SYS
配置SYS调试配置,因为本次下载使用STlink下载调试,故选择SW
JTAG调试接口(JTAG-DP)需要5个引脚;CubeMX中可选择5pin或4pin的JTAG,5pin比4pin多了一个复位引脚。
SW调试接口(SW-DP)需要2个引脚。二者之间有复用引脚。SW调试端口采用同步串行协议:SWCLK引脚为从主机到从机的时钟信号;SWDIO为双向数据信号。
ST-Link采用的是SW调试接口,选择Serial Wire
J-Link采用的是JTAG调试接口,根据实际要求选择 JTAG(4pin) 或者 JTAG(5pin)
如不进行此项操作,STM32烧写一次之后无法进行烧写
解决办法:
点开CubeMx工程,重新配置SYS,生成代码,按住复位键,点击下载,然后松开。
5、配置GPIO
需要哪个管脚,下方搜索框输入管脚号,对应管脚出现跳动
将PA1配置为Output,外设配置为默认配置。
至此,不要写任何代码,PA1管脚为低电平,LED正极接高电平,可实现点亮LED灯。
要想实现LED闪烁,只需要把PA1设置为高电位,延时一定时间再设置为低电位,延时一段时间
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
HAL_Delay(500);
注意:自己写的代码要写在注释的BEGIN和END之间,否则,容易丢失。
涉及到的一些配置,后续更新进行解释,如不配置时钟数等。