一、STM32开发环境搭建
(一)安装jdk环境
由于STM32CubeMX是Java实现的,需要安装jdk。通过链接进入jdk官网:
Java Downloads | Oraclehttps://www.oracle.com/java/technologies/javase-downloads.html进入之后,选择Java archive选项
点击Java SE,选择8u202 and earlier这个版本的
点击下载最下方Windows x64的jdk环境
(注:在点击下载之后,会弹出一个Oracle账户登录,没有注册需要先注册)
下载完成后,找到文件,双击安装
(二)安装STM32CubeMX
1.下载安装
通过链接进入官网下载STM32CubeMX
https://www.st.com/en/development-tools/stm32cubemx.htmlhttps://www.st.com/en/development-tools/stm32cubemx.html 选择Windows版本下载
右键选择管理员身份运行
开始安装
勾选同意选项 ,点击Next
勾选已阅读,点击Next
自行选择下载目录,点击Next
点击确定
点击Next
点击Next
安装完成,点击Done
2.安装固件库
选择help,点击Manage...
找到STM32F1, 下载1.8.5版本固件库
(注: 在点击Install之后,会弹出一个注册界面,未注册则需要先进行注册)
二、HAL库利用GPIO端口完成2只LED灯的周期闪烁
(一)STM32CubeMX创建项目
1.新建file,创建新项目
2.点击搜索并选择芯片STM32F103C8T6
3.双击创建
4.选择SYS
5.选择RCC
6.选择GPIO,点击输出设置GPIO_Output,此处我选择PA15,PB0,PC13三个端口
7.将三个端口设置为高电平High
8.Clock Configuration设置
9.Project Manager设置
10.各板块完成设置后使用keil打开
(二)keil中修改main.c代码
在while(1)中输入代码,然后点击编译生成Hex文件,进行烧录
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); // 灯1亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); // 灯1灭
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); // 灯2亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); // 灯2灭
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); // 灯3亮
HAL_Delay(1000); // 延时1s
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); // 灯3灭
这里有两个while(1),注意要将代码放在后面那一个
三、采用中断模式操控LED灯亮灭
(一)STM32CubeMX创建项目
SYS和RCC的配置不变,GPIO端口配置和中断配置作如下修改
中断配置可选用上升沿和下降沿,这里我们默认选择上升沿,即:按下开关灯亮,松开开关灯灭
点击NVIC配置中断,勾选如图两个选项
(二)keil中修改main.c代码
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
switch(GPIO_Pin){
case GPIO_PIN_0:
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0) == GPIO_PIN_RESET)
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
break;
case GPIO_PIN_1:
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1) == GPIO_PIN_RESET)
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_6);
break;
}
}