STM32微控制器学习笔记:Keil编译器配置与固件开发包

需积分: 9 7 下载量 184 浏览量 更新于2024-07-21 收藏 866KB DOC 举报
STM32学习笔记 STM32是一种基于ARM Cortex-M内核的微控制器,由STMicroelectronics公司生产。它具有高性能、低功耗、丰富的外设接口等特点,广泛应用于工业控制、消费电子、汽车电子等领域。本文档为个人总结的STM32学习笔记,涵盖了GPIO、串口、中断、定时器、DMA、fatfs、ucosII等方面的知识点。 **Keil5MDK与KeilC51共存方法** Keil5MDK和KeilC51是两种不同的集成开发环境(IDE),前者用于ARM Cortex-M微控制器的开发,而后者用于8051微控制器的开发。为了在同一个计算机上安装这两种IDE,我们需要遵循一定的顺序和步骤。 首先,需要安装KeilC51,然后安装KeilARM。安装完成后,需要打开KeilC51和KeilARM,找到tools.ini文件,并将KeilC51文件夹下的tools.ini文件中的[C51]段复制到KeilARM文件夹下的tools.ini文件的最后。同样,将KeilARM文件夹下的tools.ini文件中的[ARM]段复制到KeilC51文件夹下的tools.ini文件的最后。 **解决Keil编译arm项目出错** 在使用Keil编译arm项目时,可能会遇到“..\OBJ\LED.axf:Error:L6411E:Nocompatiblelibraryexistswitha definitionofstartupsymbol__main.”的错误。这是因为KeilARM与ads1.2不兼容。解决方法是添加系统环境变量,具体来说是添加ARMCC5LIB和ARMCC5INC环境变量,分别指向Keil的lib和include目录。 **STM32固件开发包** STM32微控制器的固件开发包是ST公司提供的一套完整的开发工具包,包含了在STM32开发过程中所涉及到的所有底层操作。通过引入这样的固件开发包,开发人员可以从复杂冗余的底层寄存器操作中解放出来,将精力专注应用程序的开发上。 **固件库的使用** 固件库是ST公司提供的一套函数库,包含了对STM32微控制器的寄存器操作。使用固件库可以简化开发过程,提高开发效率。但是,也可以不使用固件库,而是直接操作寄存器。然而,这样做需要消耗相当的时间,并且对于程序后续的维护、升级来说也会增加资源的消耗。 **工程目录结构** STM32的工程目录结构通常包含以下几个部分: ①FWLib:存放的是ST官方提供的固件库函数,里面的函数可以根据需要添加和删除,但是一定要注意在头文件中包含相应的函数声明。 ②其他文件夹:包含了项目的源代码、头文件、配置文件等。 本文档仅仅是STM32学习笔记的开始,后续还将涵盖GPIO、串口、中断、定时器、DMA、fatfs、ucosII等方面的知识点。