STM32 Customer BootLoader刷新项目(三)主要探讨的是如何搭建程序框架,实现通过串口进行固件刷新。首先,从STM32CubeMX开始,创建一个基础工程,作为二级BootLoader,与STM32官方的一级BootLoader(startup_stm32f407zgtx.s)协同工作。二级BootLoader,即Customer BootLoader,承担着引导操作和加载应用程序的任务,它在系统启动时发挥作用,并能与上位机通过串口进行通信,进行固件更新。在本项目中,硬件方面,使用正点原子探索者V2开发板,利用USART1进行串口通信。LED和按键用于指示工作状态。软件配置方面,STM32 CubeMX被用来建立工程,包括RCC设置、系统配置、USART串口配置(包括波特率、数据位等)、GPIO和LED灯的配置、CRC校验、时钟树配置以及生成和调试代码。关键的代码部分,如串口发送和接收函数,以及main.c中的命令判断和执行逻辑均有详细实现。工程下载和调试过程中,首先确保波特率设置正确,然后通过串口调试助手验证数据通信。项目开始时,程序会跳转至APP层,按特定按键后进入Customer BootLoader模式。上位机通过串口与之交互,进行版本号读取和固件刷新等操作。如果对项目有任何疑问,可以通过私信进行咨询。接下来,我们将深入探讨上位机与开发板通信协议的开发,以完成整个固件刷新流程。