STM32开发实战系列1-照亮世界第一盏灯
每学一门新编程语言,都喜欢用“Hello World”来昭告天下。在硬件开发板的学习上,我想应该是点亮一盏LED来表示。
点亮LED需要了解GPIO。
1.GPIO接口简介
- 通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。
2.STM32F0核心板接线图
开发过程是第一步要了解开发板和电气元件的接线情况,了解GPIO引脚。
从接线上看底板上的LED4、3、2分别接到了核心板的PB0、1、2.只要给PB0、1、2给相应的电平信号就可以控制LED。
3.新建项目
开发过程,如果每行代码自己写那真是要累死了,既然咱安装了开发环境,就借助工具帮助完成。
第一步需要用CubeMX设计工具,也就是搭建硬件的初始化环境,和自定义端口特性,通过图形界面就可以把大部分代码写好了。
通过选择MCU来创建项目
在Part Number中输入MCU型号STM32051K8,然后在右侧选择具体的型号双击或者点击右上角的Start Project创建一个空项目
出现在Pinout view区域的就是CPU控制的引脚,因为我们要控制LED电平,所以PB0、1、2引脚是输出的,在引脚上点击鼠标左键,在弹出的菜单上选择GPIO_Output。
4.Project Manager导出
在Project tab上输入Project Name,并选择Project Location(注意不要有中文路径)。
Toolchain/IDE选择MDK-ARM。
切换到Code Generator页面 选择图中的选项,然后导出项目
最后通过Generate code生成Keil代码项目。生成成功,会提示打开项目,直接点击Open Project,会启动keil
5.编辑代码
打开工程可以看到项目结构,其中的GPIO初始化,main方法基本方法的调用都是完整的。
下面要做到就是对LED定义的引脚进行高低电平控制,让神灯闪烁。
main方法里面有while方法,添加业务代码
代码中有固定注释,USER Code要写到对应的位置,如果通过CubeMX重新设计和生成代码,这些User Code将会被保留,如果代码位置不在begin和end中间,可能会被删除。
HAL_GPIO_WritePin函数是向指定的GPIO写入高低电平,每500毫秒变换一次,用来查看闪烁
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);
HAL_Delay(500);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
6.运行程序
对工程编译和下载到开发板,然后重启开发板,就看到了led灯闪烁。
- 点赞
- 收藏
- 关注作者
评论(0)