拿到Nucleo已经有段时间了,一直在用官方给的HAL库,无奈以前一直用的是STD标准库,对于HAL库的宏定义还有函数命名不熟悉,家里没有网也找不到HAL库函数说明等文件,更无语的是CUBEMX需要java运行环境支持,于是连这个软件我也没有用成,最头疼的是想新建一个411工程连器件都找不到,我看了看本地st的pack包,版本是1.0.8,本着将就的原则只好在官方代码上改。一直利用mdk的查找功能摸索HAL库的使用,一路下来倒也是调通了串口,GPIO等外设。但在前天调试SDIO时实在没有办法忍受多达上千行的代码更改调试,于是动了用std库驱动nucleo的心思,于是就有了本文。
首先需要下载最新的pack包支持(我用的手机流量下载的~~~213MB),然后启动keil5新建一个stm32f411ret6的工程,这个我想大家都会,不多说了。(略去导入pack包,大家自己导入)。添加库支持,需要把stm32f4_dsp_stdperiph_lib这个库加载进工程中,然后在c/c++选项中Define路径下添加STM32F411xE,USE_STDPERIPH_DRIVER宏。
接下来编译,报了一堆错,注释stm32f4xx.h文件下第455-457行,stm32f4xx_flash.h文件下第169-182行。注释system_stm32f4xx.c文件下第370-380行。如果还有错误请参照本人解决方式自行解决。编译,0errors 0warnings。至此,一个基于std库的411工程已经建好,接下来等着我们去发挥。 |