0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

F103程序移植到F407的经验小结

撞上电子 2023-05-18 10:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.部分外设及GPIO口对应的时钟改变

因此各GPIO的时钟使能函数和时钟名称均发生改变。

0f789ad0-f50f-11ed-ba01-dac502259ad0.png

0f95e630-f50f-11ed-ba01-dac502259ad0.png

2.GPIO口的模式发生改变

F1的GPIO口只有8种模式;而F4在输出时亦可设置上拉和下拉,因此F4可以有12种模式。并且F4的GPIO口的输入/输出/复用/模拟、推挽/开漏、上拉/下拉 都需要单独设置。除此之外,因为F4用的是AHB时钟,其最大输出速率可达到100MHz以上。

0fbd547c-f50f-11ed-ba01-dac502259ad0.png

0fdeacd0-f50f-11ed-ba01-dac502259ad0.png

100702b6-f50f-11ed-ba01-dac502259ad0.png

10269572-f50f-11ed-ba01-dac502259ad0.png

3.GPIO口对应的寄存器的名称发生改变

直接编译的话就会出现这样的错误errorstruct""has no field "CRL",CRL是F1的端口配置低位寄存器,而因为F4中对应的寄存器已经不叫这个名字了(叫MODER),因此会报错。

//举个栗子//F1#define AMG_SDA_IN() {GPIOB->CRL&=0x0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}//PB7输入模式#define AMG_SDA_OUT() {GPIOB->CRL&=0x0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}//PB7输入模式//F4#define AMG_SDA_IN() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=0<<7*2;} //PB7输入模式#define AMG_SDA_OUT() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=1<<7*2;}//PB7输入模式

4.F4配置有浮点数得硬件运算单元

F1是没有浮点数得硬件运算单元的,其浮点数运算是采用软件模拟,因此运算速度会很慢。(1)警告:warning:#1035-D:single-precision operand implicitly converted to double-precision解决方法:1)如果是浮点数值进行运算的话,则在浮点数值后加上f;2)若是变量运算,则将其计算强制转换

floata,b,c;c=0.1f*8.9f;//浮点数值后加fa=(float)(a*b);//将其运算结果转换

(2)如何开启F4的浮点数硬件计算单元

1)打开文件system_stm32f4xx.c——>函数void SystemInit(void)中加入如下代码:

#if(__FPU_PRESENT==1)&&(__FPU_USED==1) SCB->CPACR|=((3UL<< 10*2)|(3UL << 11*2));    #endif

2)在编译器中,Options for Target’XXX’—>C/C+±—>Define中加入以下语句:

__FPU_PRESENT=1,__FPU_USED =1

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时钟
    +关注

    关注

    11

    文章

    1999

    浏览量

    135228
  • GPIO
    +关注

    关注

    16

    文章

    1333

    浏览量

    56446
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于极海APM32F4的Azure RTOS ThreadX移植过程分享

    最近在玩APM32F407IG的板子,发现官方提供了两个RTOS的demo,FreeRTOS和RT-thread。想着APM32F4这么丰富的资源,是不是也可以跑一下ThreadX RTOS看看
    的头像 发表于 04-02 11:30 768次阅读
    基于极海APM32<b class='flag-5'>F</b>4的Azure RTOS ThreadX<b class='flag-5'>移植</b>过程分享

    STM32F407的晶振选型分析

    STM32F407的最佳晶振选项
    的头像 发表于 11-07 12:03 1856次阅读

    正点原子F407开发板BSP RTstudio配置LVGL demo界面不能触摸怎么解决?

    正点原子 ATK-F407 开发板BSP,使用RT studio配置LVGL,自带demo界面下,屏幕不能触摸 参考了https://club.rt-thread.org/ask/question
    发表于 10-14 06:31

    CPPDEFINES = [\'STM32F103xB\']如何选择?

    移植时SConscript中 CPPDEFINES = [‘STM32F103xB’]如何选择目标芯片:STM32F103VC
    发表于 10-11 12:56

    GD32F103RCT6移植qboot,烧录之后系统卡死怎么解决?

    如题,我使用的是stm32的hal库对STM32F103RCT6芯片进行配置的代码烧录到GD32F103RCT6中,串口和PWM都调试成功,没有问题,所以开始移植qboot。使用env拉取之
    发表于 09-19 06:41

    MH32F103A系列单片机的功能特性

    MH32F103A是一款硬件完美兼容ST32的国产32位单片机,使用高性能的ARM Cortex-M3 内核,最高工作频率216 MHz。内置最大512K Flash,96K Sram存储器。MH32F103A 软硬件兼容STM32F1
    的头像 发表于 09-12 10:58 1307次阅读
    MH32<b class='flag-5'>F103</b>A系列单片机的功能特性

    移植CANfestival,发现can无法接收数据,为什么?

    最近在研究Canopen协议,在f407的板子上移植了canfestival协议栈 移植成功后遇到一些问题,总线上我在没有发数据的情况下还是可以进入can接收中断,我不清为什么会进入中断,后来我自己
    发表于 09-11 07:46

    STM32F407VGT6的完美国产替代——中科芯CKS32F407VGT6在智能电力网关的应用

    风险。如今,这一局面正被打破,STM32F407VGT6的完美国产替代——中科芯CKS32F407VGT6在智能电力网关的应用,为这一领域带来了新的曙光,开启了国产芯片在
    的头像 发表于 08-25 16:16 1389次阅读
    STM32<b class='flag-5'>F407</b>VGT6的完美国产替代——中科芯CKS32<b class='flag-5'>F407</b>VGT6在智能电力网关的应用

    在STM32F103c8上做DLQR最优控制算法的C编程资料

    这是我近期做的一个项目--基于STM32F103c8的DLQR控制算法的C编程,涉及DLQR最优控制算法、嵌入式STM32F103编程、CMSIS-DSP库使用。    附有完整的程序
    发表于 07-23 15:30 0次下载

    MH32F103A系列单片机产品概述

    MH32F103A系列单片机软硬件兼容STM32F103A系列,可以快速替换,同时强化许多功能。性能和价格都非常的有优势。
    的头像 发表于 07-21 15:45 1499次阅读
    MH32<b class='flag-5'>F103</b>A系列单片机产品概述

    STM32F407骄阳电机版用DMA双缓存接收串口数据时,上电第一次接收区是memory1而不是memory0?为什么?

    STM32 F407骄阳电机版用DMA双缓存接收串口数据时,上电第一次接收区是memory1而不是memory0?
    发表于 06-12 07:15

    CH32F103C8T6核心板三种程序下载方式简介

    CH32F103C8T6核心板,通过USB转串口方式、USB直连方式、SWD方式下载应用程序
    的头像 发表于 06-09 09:38 1266次阅读
    CH32<b class='flag-5'>F103</b>C8T6核心板三种<b class='flag-5'>程序</b>下载方式简介

    极海APM32F407 uc/os3学习笔记之任务管理介绍

    最近了解了uc/os3这个操作系统,上篇介绍了uc/os3如何正确移植APM32F407开发板上,根据我最近学到的一些知识,这篇文章主要介绍一下uc/os3中的一些简单的任务管理API以及如何使用。
    的头像 发表于 05-24 14:37 1152次阅读
    极海APM32<b class='flag-5'>F407</b> uc/os3学习笔记之任务管理介绍

    STM32F103C6T6 DCAC逆变器原理图

    STM32F103C6T6 DCAC逆变器原理图
    发表于 05-19 17:48 2次下载

    stm32f103c8t6主控芯片无人机原理图

    stm32f103c8t6主控芯片无人机原理图
    发表于 04-29 17:02 3次下载