/*
*********************************************************************************************************
*
* 硬石YS-F4Pro开发板开发环境说明
*
*
*********************************************************************************************************
*/
【1】CPU内部资源
CPU型号 : STM32F407IGT6 / 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以太网
【2】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个端口地址
【3】开发工具
【仿真器】 --- 非标配,单独选购
虽然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
【5】编译和调试方法
【Keil MDK】V5.17
- 执行菜单 Project -> Open project 打开 \MDK-ARM\YS-F4Pro.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) 装载程序并启动调试
【6】例程文件夹说明
├─Drivers : 存放第3方提供的库或其源代码,这些代码一般是成熟的并经过验证的代码。
│ ├─CMSIS : CMSIS是ARM公司与多家不同的芯片和软件供应商一起紧密合作定义的,提供了内核与外设、实时操作系统和中间设备之间的通用接口。
│ └─STM32F4xx_HAL_Driver : STM32F4xx系列MCU的硬件抽象层(HAL)库源代码
│
├─EWARM : IAR编译器工程文件夹
│
├─Inc : 这里存放用户任务程序相关头文件
│ └─bsp : 外设模块底层驱动头文件
│
├─MDK-ARM : Keil编译器工程文件夹
│
├─Readme : 工程相关说明
│
└─Src : 这里存放用户任务程序C语音源文件
└─bsp : 外设模块底层驱动源文件
【7】工程中源代码分组说明
IAR编译环境
└─YS-F4PRO : 工程名称
├─Application : 应用程序
│ ├─EWARM : 启动文件(汇编源程序)
│ └─User : 存放 main.c 以及用户用用程序
│
├─bsp : 板级支持包,存放模块底层驱动函数
│
├─Drivers : 驱动程序
│ ├─CMSIS : 仅存放CMSIS接口文件 system_stm32f4xx.c)
│ └─STM32F4xx_HAL_Driver : 存放STM32F4xx系列MCU的HAL库源代码
│
├─Readme : 工程说明文档,仅限txt文件
└─Output : 工程编译输出文件
Keil编译环境
└─YS-F1PRO : Target名称
├─Application/MDK-ARM : 启动文件(汇编源程序)
├─Application/User : 存放 main.c 以及用户用用程序
├─Drivers/STM32F1xx_HAL_Driver : 存放STM32F1xx系列MCU的HAL库源代码
├─Drivers/CMSIS : 仅存放CMSISI接口文件 system_stm32f1xx.c
├─bsp : 板级支持包,存放模块底层驱动函数
└─Readme : 工程说明文档,仅限txt文件
【8】公共源代码文件说明
- main.c : 用户主程序,存放main()函数的文件
- stm32f4xx_it.c : 集中存放中断服务程序
【9】C编译器中的预定义宏 (在工程设置中更改)
USE_HAL_DRIVER - 增加这个符号表示使用ST公司的HAL库外设驱动
VECT_TAB_SRAM - 增加这个符号表示中断向量表定位在CPU内部RAM (针对在CPU内部RAM运行的工程才需要添加,一般都不用)
STM32F407xx - 增加这个符号表示使用STM32F407xx系列芯片
【10】调整堆和栈的容量
对于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
【11】输出目标文件
对于IAR EWARM:
\EWARM\YS-F4Pro\Exe\YS-F4PRO.hex - 采用IAR EWARM编译好的文件
对于KEIL MDK:
\MDK-ARM\YS-F4Pro\YS-F4PRO.hex - 采用KEIL MDK编译好的文件,定位在CPU 内部Flash
\MDK-ARM\YS-F4Pro\YS-F4PRO.map - 这是编译链接文件,文本格式,可以查看每个函数、变量的地址和空间分配情况。
【附录1】 YS-F4Pro开发板 GPIO分配表
按GPIO次序排列, 一共140个GPIO。GPIOA – GPIOH 每组16根,GPIOI 有12根。
PA0/ADC123_IN0 ADC转换通道,foc控制
PA1/RMII_REFCLK RMII接口
PA2/ETH_MDIO 以太网配置接口数据IO
PA3/ADC123_IN3 ADC转换通道,foc控制
PA4/ADC12_IN4 ADC转换通道,foc控制
PA5/SPI1_SCK SPI1总线时钟
PA6/ADC12_IN6 ADC转换通道,foc控制
PA7/RMII_CRS_DV RMII接口
PA8/TIM1_CH1 定时器功能引脚,电机控制
PA9/TIM1_CH2 定时器功能引脚,电机控制
PA10/TIM1_CH3 定时器功能引脚,电机控制
PA11/OTG_FS_DM 全速USB接口数据线D-
PA12/OTG_FS_DP 全速USB接口数据线D+
PA13/SWDIO SWD调试接口数据线
PA14/SWCLK SWD调试接口时钟线
PA15/TIM2_CH1 定时器功能引脚,编码器接口
PB0/ADC12_IN8 ADC转换通道,foc控制
PB1/ADC12_IN9 ADC转换通道,foc控制
PB2-BOOT1/BLN_EN BOOT1/蓝牙模块使能
PB3/TIM2_CH2 定时器功能引脚,编码器接口
PB4/SPI1_MISO SPI1数据线
PB5/SPI1_MOSI SPI1数据线
PB6/USART1_TXD 串口1发送,默认使用CH340G串口转USB芯片做调试串口
PB7/USART1_RXD 串口1接收,默认使用CH340G串口转USB芯片做调试串口
PB8/TIM4_CH3 定时器功能引脚,霍尔传感器接口
PB9/CAN1_TX CAN发送
PB10/USART3_TXD 串口3发送,默认接RS232芯片,可接RS485收发芯片
PB11/USART3_RXD 串口3接收,默认接RS232芯片,可接RS485收发芯片
PB12/TIM1_BKIN 定时器功能引脚,电机控制
PB13/TIM1_CH1N 定时器功能引脚,电机控制
PB14/TIM1_CH2N 定时器功能引脚,电机控制
PB15/TIM1_CH3N 定时器功能引脚,电机控制
PC0/ADC123_IN10
评论1