从“0”移植STM32F407工程(HAL库)

获取HAL库

ST官网现在把自己单片机的所有资料都放到stm32cubeFx包里了,大家自行去官网下载就可以了。这里我下好了把百度云链接放到这里
链接:https://pan.baidu.com/s/1xMufYTUBduHklYWDB5hGkQ?pwd=dank
提取码:dank

新建keil工程

  1. 准备存放代码的文件夹,名字可以任意最好是英文,里面要存放用户代码、HAL库、工程文件、输出文件还有单片机启动代码和内核代码在这里插入图片描述

  2. 接下来就可打开keil,新建工程–>路径选择自己刚才新建的Project文件夹,工程名字大家可以自己随便起也是尽量用英文。在这里插入图片描述

  3. 接下来会出现选择芯片的界面大家根据自己的芯片型号选择即可(大家应该都装好package了吧。。)点击ok。在这里插入图片描述

  4. 接着会弹出 Manage Run-Time Environment对话框,感兴趣的话可以点开看看里面的文件名字跟我们上面下载的STM32CubeF4里的文件名字是差不多的,但是这里下载会很慢所以我们用自己先前下好的。点击cancel。在这里插入图片描述

  5. 现在我们基本的keil工程就建立好了,接下来就是把原厂的库文件和启动文件拷贝过来,首先找到HAL库文件夹文件目录为:STM32Cube_FW_F4_V1.26.0\Drivers\STM32F4xx_HAL_Driver
    这里面的src 存放的是固件库的.c 文件,inc 存放的是对
    应的.h 文件,直接拷走。在这里插入图片描述
    可以看到我又建立了一个HALLib子文件夹,这是为了我后续的学习准备的
    在这里插入图片描述

  6. 接着我们要将STM32F4的启动文件和一些内核文件也拷贝过来文件目录如下:STM32Cube_FW_F4_V1.26.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 里有很多.s文件这些都是ST官方为STM32编写的启动文件(都是汇编写的。。。。一帮巨佬),根据自己的单片机挑选对应的文件拷贝到我们自己的Core文件夹里在这里插入图片描述
    在这里插入图片描述

  7. 跟上面一样继续拷贝文件到我们的Core文件夹,路径:STM32Cube_FW_F4_V1.26.0\Drivers\CMSIS\Core\Include 里面的文件全拷走(粗暴一点,以防万一)完成之后如下在这里插入图片描述

  8. 接下来我们拷贝一些头文件和源代码拷贝过来,我放到User文件夹,也是根据自己的芯片型号选择。。目录:STM32Cube_FW_F4_V1.26.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include 在这里插入图片描述在这里插入图片描述

  9. 继续拷贝ST给我们写的例程里面我们能用到的一些文件比如系统中断巴拉巴拉~~目录:STM32Cube_FW_F4_V1.26.0\Projects\STM32F4-Discovery\Templates\Inc 在这里插入图片描述全拷走,还是放到User文件夹下在这里插入图片描述

  10. 续上一步,这两步是转移相互配合的文件,,目录:STM32Cube_FW_F4_V1.26.0\Projects\STM32F4-Discovery\Templates\Src在这里插入图片描述全拷走,还是放到User文件夹下在这里插入图片描述

  11. 好了本地文件移植完毕,接下来把这些文件添加到Keil工程里吧(HAL库里的文件可以用到什么添加什么只添加.c文件。。。core文件里点全部添加)
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  12. 然后要在工程里添加.h路径在这里插入图片描述在这里插入图片描述开始愉快的寻找吧,一定要把刚才所有移植过来的.h路径添加进去在这里插入图片描述

  13. 接下来对于 STM32F4 系列的工程,还需要添加全局宏定义标识符,添加方法是进入 C/C++选项卡,然后在 Define 输入框连输入:USE_HAL_DRIVER,STM32F407xx。注意看逗号在这里插入图片描述

  14. 更改编译文件存放位置(便于管理)在这里插入图片描述在这里插入图片描述在这里插入图片描述

  15. 点击编译,这个过程挺慢的,,在这里插入图片描述把这些报错的文件从工程中移除重新编译在这里插入图片描述没有错误

  16. 接下来修改一下时钟配置。在这里插入图片描述这边根据你使用的板子上外部时钟修改我用的是25M所以把8改成25就好了

  17. 结束。。估计也没人看这篇文章,,因为HAL直接用stm32cubemx配置更省力,,,我就纯粹是闲的

  18. 我测试的时候。。。单片机变砖了,检查之后发现问题出在SystemClock_Config()里面在这里插入图片描述大家这里不要忘记修改啊,,,被自己蠢到。。。。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!要将FreeRTOS移植STM32F407并使用HAL库,您可以按照以下步骤进行操作: 1. 首先,下载并安装FreeRTOS的最新版本,并确保您熟悉FreeRTOS的基本概念和用法。 2. 确保您已在STM32CubeMX中配置好了您的STM32F407项目,并生成了HAL库的初始化代码。 3. 在CubeMX中,配置您的RTOS堆栈和任务。您可以在"Middleware"选项卡中找到FreeRTOS,并启用它。然后,您可以添加任务,设置堆栈大小和优先级等参数。 4. 生成代码后,将生成的文件导入到您的开发环境中。 5. 在FreeRTOSConfig.h文件中,配置FreeRTOS的选项,例如内核时钟频率、堆大小等。确保这些选项与您的项目需求相符。 6. 打开main.c文件,并在main函数中创建FreeRTOS的任务。您可以使用FreeRTOS提供的API函数来创建和管理任务。例如,使用xTaskCreate函数来创建任务并指定任务函数、任务名称、堆栈大小和优先级等参数。 7. 在任务函数中,您可以编写您的应用程序代码。使用HAL库函数来控制STM32F407的外设和执行其他操作。 8. 在main函数的末尾,启动FreeRTOS调度器(vTaskStartScheduler函数),它将开始执行任务并管理任务的调度。 9. 编译并烧录您的代码到STM32F407开发板上。 10. 在运行时,FreeRTOS将根据任务的优先级和调度算法来管理任务的执行。 这是一个简要的概述,供您进行FreeRTOS在STM32F407上使用HAL库移植。根据您的具体需求,您可能还需要进行其他配置和调整。希望对您有所帮助!如果您有任何进一步的问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值