|
公司项目中用到了STM32F207VE系列mcu,因为之前的项目一直用的是F103系列做的,所以面对F207的使用,想当然的直接把F1系列的程序搬来用就行了,结果肯定是不行的,以下就是我在F2应用中所发现与F1系列应用编程的不同之处,肯定是不完整的,也请有其他经验的坛友帮忙补充本帖,完善在F103基础上,应用F207系列的注意事项,以此为大家,更为自己提供更加方便的应用方法。一.最大工作时钟对比 F103VE:最大72Mhz; F207VE:最大120Mhz; 二.各外设的时钟总线不同 ![]() 在参考STM32F103的串口、AD、timer等外设时,一定要根据STM32F207数据手册上实际的外设时钟总线来配置外设; 三.IO口的偏移地址不同 这是F207系列与F103系列 IO口输出数据寄存器偏移地址的对比,在编程时一定要注意修改为正确的偏移地址; 这是F207系列与F103系列 IO口输入数据寄存器偏移地址的对比,在编程时也一定要注意修改为正确的偏移地址; //F103系列 IO口地址映射 #define GPIOA_ODR_Addr (GPIOA_BASE+12) //0x4001080C #define GPIOB_ODR_Addr (GPIOB_BASE+12) //0x40010C0C #define GPIOC_ODR_Addr (GPIOC_BASE+12) //0x4001100C #define GPIOD_ODR_Addr (GPIOD_BASE+12) //0x4001140C #define GPIOE_ODR_Addr (GPIOE_BASE+12) //0x4001180C #define GPIOF_ODR_Addr (GPIOF_BASE+12) //0x40011A0C #define GPIOG_ODR_Addr (GPIOG_BASE+12) //0x40011E0C #define GPIOA_IDR_Addr (GPIOA_BASE+8) //0x40010808 #define GPIOB_IDR_Addr (GPIOB_BASE+8) //0x40010C08 #define GPIOC_IDR_Addr (GPIOC_BASE+8) //0x40011008 #define GPIOD_IDR_Addr (GPIOD_BASE+8) //0x40011408 #define GPIOE_IDR_Addr (GPIOE_BASE+8) //0x40011808 #define GPIOF_IDR_Addr (GPIOF_BASE+8) //0x40011A08 #define GPIOG_IDR_Addr (GPIOG_BASE+8) //0x40011E08 //////////////////////////////////////////////////////////////////////////// //F207系列 IO口地址映射 #define GPIOA_ODR_Addr (GPIOA_BASE+0x14) //0x4001080C #define GPIOB_ODR_Addr (GPIOB_BASE+0x14) //0x40010C0C #define GPIOC_ODR_Addr (GPIOC_BASE+0x14) //0x4001100C #define GPIOD_ODR_Addr (GPIOD_BASE+0x14) //0x40020c14 #define GPIOE_ODR_Addr (GPIOE_BASE+0x14) //0x4001180C #define GPIOF_ODR_Addr (GPIOF_BASE+0x14) //0x40011A0C 注意stm32f207 与f103系列 偏移量不同 #define GPIOG_ODR_Addr (GPIOG_BASE+0x14) //0x40011E0C #define GPIOA_IDR_Addr (GPIOA_BASE+0x10) //0x40010808 #define GPIOB_IDR_Addr (GPIOB_BASE+0x10) //0x40010C08 #define GPIOC_IDR_Addr (GPIOC_BASE+0x10) //0x40011008 #define GPIOD_IDR_Addr (GPIOD_BASE+0x10) //0x40011408 #define GPIOE_IDR_Addr (GPIOE_BASE+0x10) //0x40011808 #define GPIOF_IDR_Addr (GPIOF_BASE+0x10) //0x40011A08 #define GPIOG_IDR_Addr (GPIOG_BASE+0x10) //0x40011E08 先就总结这些,以后有新的发现再来添加。 |
| 用207DEMO工程,然后把在103的应用搬上207不是更快吗 |
| 把硬件相关的代码修改一下,硬件无关的代码基本不用修改。只要在构建项目时把硬件进行了封装,更换平台不是太麻烦 |
| 本还想把几个产品升级到F207芯片的,但一比对手册,改动地方挺多的,特别是网络部分,就消了这个冲动! |
| 也正在移植F103程序到F429,上面的内容很有参考价值,希望这类移植的内容多一些! |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版