1、开发环境
(1)KeilMDK:V5.38.0.0
(2)STM32CubeMx:V6.8.1
(3)MCU:STM32F407ZGT6
2、实验目的&原理图
2.1、实验目的
实现两个LED灯以500毫秒闪烁一次。
2.2、原理图
(1)LED阴极接GPIO,GPIO输出低电平,LED点亮;GPIO输出高电平,LED熄灭。
(2)LED1接PF9、LED2接PF10。
3、STM32CubeMX操作部分
3.1、新建工程
(1)打开STM32CubeMX软件。
(2)点击File→NewProject。
(3)Commercial Part Number(商用部件号)处输入MCU型号,然后选择正确的单片机型号,点击Start Project(开始项目)。
(4)配置工程名、工程存放文件等。
点击Project Manager(项目经理)进行如下配置。
点击Code Generator(代码生成器)进行如下配置。
(4)点击GENERATE CODE生成KeilMDK工程。
3.2、配置时钟和GPIO
(1)HSE、LSE时钟源选择
- HSE:高速外部时钟源
- LSE:低俗外部时钟源
- Disable:禁用
- BYPASS Clock Source:旁路时钟源
- Crystal/Ceramic Resonator :水晶/陶瓷共振器
- 一般选择水晶陶瓷共振器
- 旁路时钟源就是由外部给定一个时钟信号,一般用于作为同步时钟。
- 水晶/陶瓷共振器:指外接晶振,经过内部振荡电路产生时钟。
(2)配置GPIO如下
(3)时钟树的配置
(3)配置需要重新点击GENERATE CODE更新KeilMDK代码。
4、KeilMDK软件编写部分
4.1、程序编写
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);
HAL_Delay(500);
4.2、完整工程下载地址
(1)完整工程存储在码云。
(2)STM32_CSDN: CSDN中STM32专栏的所有示例代码