1. 实验目的
使用stm32CubeMX生成hal库代码,编写main函数,点亮LED灯,这里使用的正点原子的板子是stm32F407探索者。
2. 实验流程
2.1 新建工程
选择芯片型号,STM32F407ZE。
2.2 时钟模块配置
2.3 时钟系统配置
STM32F407的外部高速晶振是8MHZ,主频最高可以达到168MHZ,具体设置如上,进入锁相环的时钟选择外部高速时钟,系统时钟选择来自锁相环时钟,配置倍频和分频数,保证后面的时钟频率不超过最大时钟频率(这边是达到最大时钟频率)。
2.4 GPIO引脚配置
这里的LED0对应GPIOF9引脚,LED1对应GPIOF10引脚
GPIO10同理。
2.5 Cortex内核配置
2.6 生成工程源码
保存工程,生成源码(右上角按钮)。
2.7 编写用户程序
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
HAL_Delay(500);
}
把生成的代码,烧到开发板中,结果如下:
CubeMx
3. 总结
编译代码时遇到问题,查阅资料,发现是没有启动文件,这里在其他的源码文件中复制一个startup_stm32f407xx.s文件,然后添加到现有工程中,如下所示