微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 第三篇 创建自己的软件工程模版

第三篇 创建自己的软件工程模版

时间:10-02 整理:3721RD 点击:

在上一篇中使用的是STM32F4cube的工程模版文件,因为STM32F4CUBE的包含了几乎所有STM32F4系列单片机的开发板程序,文件比较庞大。我打算基于我自己的编程习惯,参考STM32F4CUBE,创建自己的STM32F412软件工程模版。1、首先打开STM32F412参考手册,找到时钟树。


参考STM32F4CUBE的程序,单片机上电,先设置堆栈和中断向量表,然后会调用SystemInit和main函数。SystemInit函数如下图所示:


NUCLEO-F412ZG没有连接外部晶振,所以程序选用单片机内部自带16MHz振荡器,设置PLL的频率为96MHz,供系统时钟使用。
PLL输出频率 = 16MHz/PLLM*PLLN/PLLP。PLLM=16,PLLN=192,PLLP=2,得到的时钟频率为96MHz。
同时PLLQ = 2,PLLR=2,设置为48MHz供USB等外设使用。
进入main函数以后,还会调用SystemClock_Config()函数,设置AHB APB1 APB2等时钟频率。
STM32F4CUBE的时钟设置符合我的需求,可以直接拿来用。
2、创建工程模版。
MDK创建工程的基本方法这里不在赘述。
创建五个文件夹,USER,HARDWARE,STM32F4_Hal_Driver,CMSIS,STARTUP
USER文件夹中主要包括main.c和stm32f4xx_it.c以及相关的头文件
HARDWARE文件夹包含外设的驱动程序
STM32F4_Hal_Driver文件夹包含官方外设库文件
CMSIS文件夹包含system_stm32f4xx.c及相关头文件
STARTUP文件夹包含startup_stm32f412zx.s


添加宏定义,包含头文件路径,设置ST-LINK等。
STM32F412Zx,USE_HAL_DRIVER,USE_STM32F4XX_NUCLEO_144


此时编译,下载到开发板,能够成功,但是还不知道开发板有没有正确运行。
在HARDWARE中创建LED.c初始化GPIO等,在main中初始化并且点亮LD1 LD2 LD3。


编译并下载到开发板,三个LED灯都亮起来:


本篇实验结束,工程源码在百度云:链接:http://pan.baidu.com/s/1qYKX6zi 密码:z651。
如果出现错误,请坛友帮忙指正,感激不尽!


后面多了一张图片,不知道咋回事

哈哈哈,我也不知道咋回事。小编好快啊,每一篇都在我前面,给了我不少帮助。

HAL库感觉好繁琐啊,可是找不到标准库。

这两天忙了,得等等我

据说可以用407的库,我去试试。

我也要加紧时间来弄,最近公司事多。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top