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

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

    关注

    10

    文章

    1733

    浏览量

    131458
  • GPIO
    +关注

    关注

    16

    文章

    1204

    浏览量

    52060
收藏 人收藏

    评论

    相关推荐

    STM32 F407无传感器控制PLL

    电子发烧友网站提供《STM32 F407无传感器控制PLL.zip》资料免费下载
    发表于 12-19 14:10 0次下载

    【GD32 MCU 移植教程】9、从 STM32F10x 系列移植 GD32F30x 系列

    对比、外设及性能对比以及从 STM32F10x 移植 GD32F30x 的移植步骤,旨在让开发者能够快速从STM32
    的头像 发表于 09-07 09:57 687次阅读
    【GD32 MCU <b class='flag-5'>移植</b>教程】9、从 STM32<b class='flag-5'>F</b>10x 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32<b class='flag-5'>F</b>30x 系列

    【GD32 MCU 移植教程】8、从 STM32F4xx 系列移植 GD32F4xx 系

    、外设及性能对比以及从 STM32F4xx 移植 GD32F4xx 的移植步骤,旨在让开发者能够快速从STM32
    的头像 发表于 09-06 09:40 1258次阅读
    【GD32 MCU <b class='flag-5'>移植</b>教程】8、从 STM32<b class='flag-5'>F</b>4xx 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32<b class='flag-5'>F</b>4xx 系

    【GD32 MCU 移植教程】7、从 GD32F10x 移植 GD32E103

    本应用笔记旨在帮助您快速将基于 GD32F10x 2.0 版本及以上固件库开发的应用程序从GD32F10x 系列微控制器移植 GD32E
    的头像 发表于 09-05 09:40 508次阅读
    【GD32 MCU <b class='flag-5'>移植</b>教程】7、从 GD32<b class='flag-5'>F</b>10x <b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32E<b class='flag-5'>103</b>

    【GD32 MCU 移植教程】2、从 GD32F303 移植 GD32F503

    GD32E503 系列是 GD 推出的 Cortex_M33 系列产品,该系列资源上与 GD32F303 兼容度非常高,本应用笔记旨在帮助您快速将应用程序从 GD32F303 系列微控制器移植
    的头像 发表于 08-31 09:36 1459次阅读
    【GD32 MCU <b class='flag-5'>移植</b>教程】2、从 GD32<b class='flag-5'>F</b>303 <b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32<b class='flag-5'>F</b>503

    STM32F103xC,STM32F103xD,STM32F103xE中文资料

    电子发烧友网站提供《STM32F103xC,STM32F103xD,STM32F103xE中文资料.pdf》资料免费下载
    发表于 06-17 14:12 3次下载

    如何实现以太网功能的,是用F107或F407芯片自己移植Lwip还是采用SPI转以太网模块?

    一般大家是如何实现以太网功能的,是用F107或F407芯片自己移植Lwip还是采用SPI转以太网模块?
    发表于 05-17 06:49

    STM32F407移植LWIP协议栈总是进入硬件中断的原因?

    f407移植LWIP协议栈 一这个地方就进入硬件中断 请问是我的指针没初始化好吗?还是其他原因?? /* entry point to the LwIP stack */ err = netif->input(p,
    发表于 05-16 07:59

    stm32f401与stm32f407在工程配置与代码上有什么区别?

    方便容易,但很奇怪现在调试一直不通,使用最基本的高低电平以及串口测试程序都不通,不通指的是:能够通过flash loader v2.8正常下载代码进去,但是不能跑。想问在工程配置以及代码上f407
    发表于 05-09 06:01

    把STM32F407程序移植STM32F103的芯片上面,需要修改哪些内容?

    把STM32F407程序移植STM32F103的芯片上面,需要修改哪些内容?
    发表于 04-10 07:38

    17个原理图画图技巧要知道

    圆圈中可放置0R电阻,使用F103时,把0R焊上,电容不焊。使用F407时,把电容焊上,0R不焊。 当然,也可以预留其它电路,要举一反三。
    的头像 发表于 03-26 09:48 1579次阅读
    17个原理图画图技巧要知道

    STM32F407配置DMA TIM PWM一直无法生效的原因?

    使用HAL库配置 TIM 输出DMA PWM ,几乎差不多的 代码,F103可以启动,但F407无法启动。可否有例程可以参考,感觉资料太少了。 if (HAL_TIM_PWM_Init
    发表于 03-21 06:07

    STM32F103VE搭建的PWM输入捕获功能,移植STM32F103VD无法捕获的原因?

    利用STM32F103VE芯片搭建的PWM输入捕获功能,移植STM32F103VD的时候,无法捕获。主要存在的问题:进入不了中断服务函数(利用STM32
    发表于 03-20 08:21

    STM32F407USB HAL库的USB In时的数据流向是什么?

    最近在学习STM32 F407的USB功能。想要做一个USB声卡,可以播放,可以录音。 但是在Host录音的时候,F407不会发送数据Host。 请问有大佬可以介绍一下F407 US
    发表于 03-19 06:58

    用Cubemx生成的F103ZET6 USB Audio Device Class的代码,能正常被枚举但没有声音怎么解决?

    Class的代码,就可以 用bus hund 抓了cubemx F103ZET6 USB Auduo代码 发现只有一个控制端点 对比CubemX 生成的F407 USB Audio代码 还有一个同步端点, F407 生成的代码
    发表于 03-18 06:21