-
CPU内部资源
CPU型号 : STM32F407 / LQFP-176 / ARM 32-bit Cortex-M4
主频 : 168MHz
内部Flash容量 : 1MB
内部SRAM容量 : 128KB SRAM+64KB CCM = 192RAM
定时器 : 17个
UART : 6个
SPI : 3个 (2个可复用为I2S)
I2C : 3个
ADC : 3个独立的12位ADC
DAC : 2路独立12位DAC
CAN : 2个 CAN 2.0B
SDIO : 1个
USB : USB2.0全速(集成内部PHY) 从设备/主设备/OTG功能
USB2.0高速/全速 从设备/主设备/OTG功能
GPIO : 140个
ETH : 10/100M以太网 -
FSMC存储器地址分配
CPU内部 FLASH 【0x0800 0000 - 0x080F FFFF】,容量1M(0x100000)字节
CPU内部 SRAM1 【0x2000 0000 - 0x2001 FFFF】,容量128K(0x20000)字节
CPU内部 CCM data RAM 【0x1000 0000 - 0x1000 FFFF】,容量64K(0x10000)字节
TFT LCD地址 【0x6C00 0000, 0x6C00 0002】, 仅占用1个端口地址 -
开发工具
【仿真器】 --- 非标配,单独选购
虽然STM32支持串口ISP下载程序,但是不支持在线调试。使用串口下载,开发效率极低,因此强烈推荐购买一个仿真
器,提高开发效率。
- ST-LINK V2 仿真器: ST公司开发的仿真器,可以下载程序和调试跟踪程序。支持STM8和STM32。
- J-LINK V8,V9仿真器 : Segger公司开发的仿真器,可以下载程序和调试跟踪程序。支持所有ARM系列。
- CMSIS-DAP仿真器:ARM开源仿真器,可以下载程序和调试跟踪程序。支持所有ARM-M系列。
【Mini USB线】--- 开发板配送
- 开发板预留一个Mini USB接口,一个通过CH340G芯片通过跳线帽选择接在stm32芯片USART1接口上,可用于大部分
程序打印调试信息。【开发软件】
- 编译环境: KEIL 的 MDK uVision5.17 IAR 的 ARM工具 v7.50.2 -
编译和调试方法
【Keil MDK】V5.17
- 执行菜单 Project -> Open project 打开 \MDK-ARM\Project.uvprojx (这是工程文件)
- 执行菜单 Project -> Rebuild all target files 重新编译所有的文件:
- 执行菜单 Flash -> Download (F8) 下载程序到开发板运行
【IAR】V7.50.2
- 执行菜单 File -> Open -> Workspace 打开 \EWARM\Project.eww (这是工程工作平台文件)
- 执行菜单 Project -> Rebuild all 重新编译所有的文件:
- 执行菜单 Project -> Download and Debug(Ctrl+D) 装载程序并启动调试 -
例程文件夹说明
├─Drivers : 存放第3方提供的库或其源代码,这些代码一般是成熟的并经过验证的代码。
│ ├─CMSIS : CMSIS是ARM公司与多家不同的芯片和软件供应商一起紧密合作定义的,提供了内核与外设、实时操作系统和中间设备之间的通用接口。
│ └─STM32F4xx_HAL_Driver : STM32F4xx系列MCU的硬件抽象层(HAL)库源代码
│
├─EWARM : IAR编译器工程文件夹
│
├─Inc : 这里存放用户任务程序相关头文件
│ └─bsp : 外设模块底层驱动头文件
│
├─MDK-ARM : Keil编译器工程文件夹
│
├─Readme : 工程相关说明
│
└─Src : 这里存放用户任务程序C语音源文件
└─bsp : 外设模块底层驱动源文件 -
工程中源代码分组说明
IAR编译环境
└─XXX_Project : 工程名称
├─Application : 应用程序
│ ├─EWARM : 启动文件(汇编源程序)
│ └─User : 存放 main.c 以及用户用用程序
│
├─bsp : 板级支持包,存放模块底层驱动函数
│
├─Drivers : 驱动程序
│ ├─CMSIS : 仅存放CMSIS接口文件 system_stm32f4xx.c)
│ └─STM32F4xx_HAL_Driver : 存放STM32F4xx系列MCU的HAL库源代码
│
├─Readme : 工程说明文档,仅限txt文件
└─Output : 工程编译输出文件
Keil编译环境
└─XXX_Project : Target名称
├─Application/MDK-ARM : 启动文件(汇编源程序)
├─Application/User : 存放 main.c 以及用户用用程序
├─Drivers/STM32F4xx_HAL_Driver : 存放STM32F4xx系列MCU的HAL库源代码
├─Drivers/CMSIS : 仅存放CMSISI接口文件 system_stm32f4xx.c
├─bsp : 板级支持包,存放模块底层驱动函数
└─Readme : 工程说明文档,仅限txt文件 -
公共源代码文件说明
- main.c : 用户主程序,存放main()函数的文件
- stm32f4xx_it.c : 集中存放中断服务程序 -
C编译器中的预定义宏 (在工程设置中更改)
USE_HAL_DRIVER - 增加这个符号表示使用ST公司的HAL库外设驱动
VECT_TAB_SRAM - 增加这个符号表示中断向量表定位在CPU内部RAM (针对在CPU内部RAM运行的工程才需要添加,一般都不用)
STM32F407xx - 增加这个符号表示使用STM32F407xx系列芯片 -
调整堆和栈的容量
对于IAR EWARM, 直接在工程设置中进行修改即可
- 菜单 project -> options -> 选择Linker -> Config页 -> 点Edit按钮 -> 切换到Stack/Heap Size
比如:
CSTACK = 0x1000
HEAP = 0x400
对于KEIL MDK, 设置堆和栈的大小是通过修改启动文件start_stm32f407xx.s 文件实现的,比如:
Stack_Size EQU 0x00001000
Heap_Size EQU 0x00000200 -
输出目标文件
对于IAR EWARM:
\EWARM\Project\Exe\Project.hex - 采用IAR EWARM编译好的文件
对于KEIL MDK:
\MDK-ARM\Project\Project.hex - 采用KEIL MDK编译好的文件,定位在CPU 内部Flash
\MDK-ARM\Project\Project.map - 这是编译链接文件,文本格式,可以查看每个函数、变量的地址和空间分配情况。
STM32F407开发环境说明
猜你喜欢
转载自blog.csdn.net/qq1291917670/article/details/114997290
今日推荐
周排行