工程建立:
1,以管理员身份运行keil。
2,在project上建立新工程。
3,找到自己要用到芯片。
4,添加Cortex 内核底层支持 + STM32 芯片启动汇编文件。
5,鼠标右键点击Source Group 1,添加main.c
实验任务1:以 STM32最小系统核心板(STM32F103C8T6)+面板板+3只_(或更多)红绿蓝LED 搭建电路,使用GPIOA/GPIOB/GPIOC端口控制LED灯,轮流闪烁,间隔时长1秒。
代码编写如下:
结果如下
实验任务2:在实验1的基础上,改用标准外设库方式使用某个端口GPIOx端口管脚控制几个LED灯,轮流闪烁,间隔时长1秒
代码编写:
周期:
Delay_ms(1000)来决定为1个周期3秒。
实验结果:
实验任务3:在前面实验基础上,改用 HAL库+ 按键中断方式控制 流水灯运行的暂停、恢复继续。
代码编写:
结果:当PA3接入GND时全部不亮。
总结
本次实验基于 STM32F103C8T6 最小系统板,分寄存器版、标准外设库版、HAL 库按键中断版三个任务实现流水灯功能,完成 GPIO 输出配置、软件延时、外部中断控制启停等内容,也遇到了一些问题:寄存器版本 LED 不亮:忘记开启 GPIO 端口的 APB2 时钟。GPIO 外设上电默认关闭时钟,必须开启时钟之后,寄存器配置才会生效。在本此实验中完成了 STM32 GPIO 基础输出、输入、中断的基础训练,为后续定时器、串口等外设学习打下基础。