STM32F746 Discovery 学习笔记3 LD1指示灯闪烁
在学习论坛和社区网友分享的有关STM32F746帖子后,准备用mdk5.17创建工程,先从LED指示灯开始。
参考官网“en.stm32cubef7”压缩包下STM32Cube_FW_F7_V1.4.0->rojects->STM32746G-Discovery->Examples->FLASH->FLASH_EraseProgram->MDK-ARM例程,创建test工程,首先复制源文件:
Drivers文件夹下包含BSP、CMSIS、STM32F7xx_HAL_Driver三个文件夹(目录在STM32Cube_FW_F7_V1.4.0->Drivers),只复制了STM32746G-Discovery相关文件;
Inc和Source文件夹直接复制FLASH_EraseProgram->下Inc和Source文件内容,只是main.c文件删除flash操作有关的函数和内容
Startup文件夹下包含启动文件startup_stm32f746xx.s,直接复制FLASH_EraseProgram->MDK-ARM下文件
使用Keil uVision5创建空工程,Device选择STM32F746NG->STM32F746NGHX:
弹出Manage Run-Time Environment窗口,直接点击cancle关闭窗口即可,然后添加源文件,Add Group...,Add Existing File to Group...,对于“Driver”group下文件,选择与工程有关的驱动就可以,如果全选编译时比较浪费时间。
刚接触Bsp,从网上搜索资料可以了解到:BSP是板级支持包 (board support package)是介于主板硬件和操作系统之间的一层,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。
可直接调用Bsp驱动文件,不需要编写底层驱动,对于底层硬件不需要太多了解。Bsp下“stm32746g_discovery.c”文件中包含了LED、按键、串口、I2C等初始化和操作函数。
打开“Options for Target ...”窗口,在C/C++选项框中,添加hex文件路径,(在Process symbols->Define输入框中没有填写字符“USE_HAL_DRIVER,STM32F756xx,USE_STM32746G_DISCOVERY”)
编译成功,在线调试时,选择ST-Link Debugger工具,在Flash Download选项框中,自动添加“STM32Fxx 1MB Flash”,点击“Start Debug”快捷按钮,在线调试即可。如果打开了“STM32 ST-LINK Utility”这个软件,请先关闭,否则在线调试时提示找不到ST-Link工具
在线调试后跳转到main函数入口,点击Run运行后,可以看到LD1指示灯每秒闪烁。
注意:当使用“Manage Run-Time Environment”提供的驱动和主函数模板文件时,需添加“stm32f7xx_it.c”文件,否则工程在线调试时,断点调试正常,Run时就跳到中断调用入口 |