zoukankan      html  css  js  c++  java
  • stm32f767 HAL 工程模板

    stm32f767 HAL  工程模板

    官方建议使用 HAL库方式!!!

     

    HAL库的移植,同标准库的移植相差不多。

    本次以STM32F767使用HAL库进行移植,建立工程模板。

    其它开发板,类似的选择要拷贝需要的文件,只是名字不同本质的东西大致一样。

    要会变通,及文件名的意思,代表着他们的作用,要思考。

     

    HAL的下载,使用Cube MX软件自带下载的即可,默认保存路径:

    注意修改用户名为自己用户名!

    C:UsersAdministratorSTM32CubeRepositorySTM32Cube_FW_F7_V1.16.1

    在Keil中创建五个文件夹,为了学习和分析的方便性,文件夹的目录级数,均为一层,没有多层管理。

    看我的思维导航图就知道。

    其实生产环境中,可以将,STM32F7xx_HAL_Drive、STARTUP、CMSISCORE、CMSISST,这四个文件夹其实可以放一个文件夹:HAL

     

    最终拷贝好的,工程模板的源码目录结构:

    Keil中添加组文件夹:

     注意:

    为了学习和分析,添加组文件时,头文件,源文件,都一并添加进来了。

    HAL_Driver可先只先添加需要文件,避免编译时间过长。

    编译配置

    晶振25,使用微库,双浮点启用,这里暂时没有使用,只是先开启【后续一定是要整的】。

     

     生成HEX

    Keil中添加头文件,和 预编译的宏定义: USE_HAL_DRIVER,STM32F767xx

    注意: 预编译的宏定义,其实也是可以在代码中实现的。【CMSISST文件夹中的stm32f7xx.h内】

    正常编译,报错列表:

    报错:FCARM - Output Name not specified, please check 'Options for Target - Utilities'

     分析:从网上搜索和自己找问题,大都是因为在添加组时,进行添加文件时,引入了非头文件,源文件,汇编文件,IDE不能适别导致。

    解决方法,将组文件夹都删除,重新再添加一遍,再次编译。

    组文件夹 有人不理解,其实就是点击那个“品字形”的图标,组织文件夹的配置,删除重新添加。

    报错:..USERIncmain.h(26): error:  #5: cannot open source input file "stm32f7xx_nucleo_144.h": No such file or directory

    分析:明显是引入的文件不存在,双击报错行,会跳转到报原因行。

     注解//#include "stm32f7xx_nucleo_144.h",再编译。

    报错:Overlapping of Algorithms at Address 08000000H

      分析:重叠 of 算法 at 地址 

    解决:只留STM32F7x  1MB Flash  1M 那一行即可。

    再编译运行,一般不会有什么报错。

    【如若有参考我的方法进行移植有报错,欢迎留言,协助你分析报错!】,

    这样一个HAL的工程模板就建立好了。

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    零知识证明,中间人攻击,盲签名:原理和应用——三篇密码学科普文章
    json
    优化自己的编写出来的C#程序
    C++中不同的继承方式
    C语言程序编写涉及内存的问题
    面向Android的Tesseract工具
    常见Linux使用的十大问题
    Java语言链接数据库连接池配置的两种技巧
    配置数据库连接池的技巧
    PHP和Java在Web开发下相比较
  • 原文地址:https://www.cnblogs.com/ncepu/p/14954328.html
Copyright © 2011-2022 走看看