• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32F4的程序能移植到STM32F1上吗?

那一场雪 2018-08-27 浏览量:9740
我用STM32F407ZET6想把同一个程序移植到F1上,是不是只需要修改一下时钟频率就可以了?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 不是的,要修改底层驱动,所有应用层程序都是一样的,不同的平台对应的底层驱动不同,对应的寄存器也不同,所以不是修改时钟频率那么简单,不过也不太复杂,毕竟ST的库定义上都差不多,应该可以很快的就移植号
    • 发布于 2018-08-27
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:21
  • 需要修改底层驱动,还要改启动文件,建议直接用407的例程,然后把底层库和驱动移植过去
    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 2
    • 0

  • 应用层可以,底层驱动肯定要改,不同型号的芯片的寄存器不一样,用的库不一样,这个要做更改的
    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 2
    • 0

  • 如果是使用HAL库,移植在某些情况下改动很小,几乎没有

    但是使用寄存器库,这个工作量就大了


    这就是ST推出HAL库的根本原因,方便移植

    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 2
    • 0

  • HAL库时全平台移植都很方便的,只需要修改时钟就行。如果是标准库的话就要根据库来改了,稍微麻烦一丢丢,不过也是可以实现的。最重要的是你在F4上使用到的外设你F1上也得有,不然不能移植
    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 2
    • 0

  • 应用层不用改,主要看你底层调用了啥东西,直接调用硬件的部分都需要适配。如果是用的hal 库和cobemx,那就简单得多了,直接换器件换库应用代码复制过来就能跑
    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 2
    • 0

  • 这要看你用的哪个库了 如果是hal库 改动很小

    但是一些没有的外设是不能用的 用了的话就没法移植

    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 1
    • 0

  • STM32F4系列和STM32F1系列定位是不一样的,内部资源也有很大差别,显然F4系列资源要比F1系列丰富,如你所说是从高端向低端迁移,除非你原来的程序使用的资源有限,且只覆盖到与F1系列同样的资源。那么移植是有可能的,否则资源都不够,移植从何谈起!

    en.microcontrollers_FM141.jpg

    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 不同系列的芯片要做修改的块方还不少,主要原因是外设的寄存器其块扯不一样
    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 非寄存器相关的都可以,即不涉及底层的代码重新编译之后都可以运行,但是底层相关的必须要修改了才能用
    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个改动就大了,主要是底层驱动吧,建议利用同样的思路,在F4基础实验上上重新写一个吧
    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 看清况,如果你程序中有些外设只有F4有而F103没有,那就不能移植,如果只是简单调用GPIO ADC I2C SPI UART那些,就可以直接移植,并且I2C SPI UART也必须是F103有的外设,比如F103就没有UART6而F4有。

    • 发布于2018-08-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 逻辑层的移植跟平台没关系,不过一些特殊运算就不太好,比如浮点型运算,但是如果硬件支援有差,有的就移植不过来了
    • 发布于2018-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 只能移植应用层的东西,F1和F4的底层库完全不一样,寄存器配置也不一样,不是简单改个时钟频率就行的
    • 发布于2018-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 底层与驱动层是不同的,应用层的可以进行移植,但是外设要一样才可以的
    • 发布于2018-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 407和F1在驱动上,差别很大。

    如果使用的CubeMX 那估计工作量稍微小一些,但是如果你用的标准库,那就改动太大了。

    比如,就串口的驱动,F1不需要串口引脚映射,但是F4却需要的。

    • 发布于2018-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 不通用的,f4的寄存器多出f1很多的,外设时钟和外设功能都有很多差异。
    • 发布于2018-08-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 只从寄存器看,f4也比f1多了一些寄存器,代码直接复制是绝对不行的,

    对应IO口的外设也不一样,同一个编号的外设功能也不一定相同

    • 发布于2018-09-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以的,把你用户的文件移植到F1上就可以,跟硬件相关的要重新配置
    • 发布于2018-09-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果用的是HAL库,移植起来很简单把对应的HAL替换就可以直接使用
    • 发布于2018-09-22
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32F4的程序能移植到STM32F1上吗?