STM32作为一类高级单片机,在应用中不容小觑。

所以本人从2018年1月1日开始对于STM32系列单片机的学习。

本人所持的型号为;STM32F429ZI-DISCOVERY,M4内核,封装类型为:LQFP144

很感谢我的班主任送我的开发板:STM32F429I-DISCOVERY (M4)

以下是ST官网对应的型号数据以及开发文档:

  芯片:
    英文版文档信息:http://t.cn/RH0dc2D
    中文版文档信息:http://t.cn/RHW3WKh

  开发板:http://t.cn/RHRKxjs

  第三方资料:http://t.cn/zQUBVWh

【网络例程】STM32F429I-Discovery:http://t.cn/RHYWvob

  例程中用到的开发环境CoIDE:http://t.cn/RHYWTjd

产品信息
评估板 STM32F4 DISCOVERY
硅芯制造商:STMicroelectronics
内核架构:ARM
内核子架构:Cortex-M4
硅芯号:STM32F429I
硅芯系列号:STM32F4xx
套件包含:Dev Board STM32F429I

产品特性
STM32F429ZIT6 MCU,2MB 内部FLASH,256KB 内部RAM,LQFP144 引脚封装
板载ST-LINK/V2调试下载工具
USB供电
采用2.4" QVGA TFT LCD
外扩 64 Mbits SDRAM
USB OTG接口引出
2个用户按键,RESET,user
板载3轴数字陀螺仪 L3GD20
6个LED指示灯
– LD1 (red/green) for USB communication
– LD2 (red) for 3.3 V power-on
– Two user LEDs:
LD3 (green), LD4 (red)
– Two USB OTG LEDs:
LD5 (green) VBUS and LD6 (red) OC(over-current)

STM32F429I-DISCO is based on an STM32F429ZIT6 and includes an ST-LINK/V2 embedded debug tool interface, 2.4" TFT LCD, SDRAM 64 Mbits, Gyroscope ST MEMS, LEDs, pushbuttons and a USB OTG micro-B connector. The most importand features intoduced in new 429/439 MCU series are synchronous dynamic memory (SDRAM) controller and LCD TFT controller that supports resolution up to 800x600 pixels.

本人发现STM32真的非常强大,对应的开发文档也有好几种类型:

(不同的版本对应的是不同的环境)

  1.HAL库版本  (起初被人诟病的一个版本,但现在作为ST主推的一个开发方向)

  2.函数库器版本  (和1差不多,是一个经典版本)

  3.emWin版本  (图形开发方面)

  4.LwIP版本  (网络通信方面)

  5.uCos版本  (系统内核方面)

================================================

按照以前本人学单片机的习惯,依旧用keil进行开发。

  附带keil 使用STM32F429芯片开发(安装pack)方法:

  1.下载STM32F4xx_DFP.2.9.0.pack,(可能不是这个版本号,没关系看个人喜好)

  2.直接使用packinstaller 导入即可。(该文件位于keil同目录下)

  当然,还请自行解决许可证问题。

==========

本人下载的官方标准库为:STM32F4xx_DSP_StdPeriph_Lib_V1.8.0

其实无论是

  解压后如下:(对于本块知识,可以看看博友的文章:http://t.cn/RHTEHmT

  

==========

以下是创建一个项目模板具体步骤,方便以后开发使用。

参考源:http://t.cn/R7cAUxb

创建工程模板

文件管理

为了方便管理,我们在创建项目前,先规范好项目文件夹。

请注意,创建工程模板没有规定一定要按以下步骤,可以是另外的创建步骤,但只要是便于管理,那么就是一个好的工程。

在项目文件夹中,创建以下文件夹

文件夹   用途
CMSIS  Cortex微处理器软件接口标准,适用于所有Cortex系列                        
Driver  放置了中断等功能,也是用户放置外部程序的地方
Library  存放STM32驱动库文件
User  用户文件夹,一般是main.c的存放目录
Project  工程相关的目录,存放编译生成的中间文件

将下面4个文件夹中指定的文件复制到新建的CMSIS文件夹中,共8个。

  在\Libraries\CMSIS\Device\ST\STM32F4xx\Include中,

    复制system_stm32f4xx.h、stm32f4xx.h

  在\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates中,

    复制system_stm32f4xx.c

  在\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm中,

    根据芯片型号复制好对应的文件,

    这里是startup_stm32f429_439xx.s

  在\Libraries\CMSIS\Include\中

    复制core_cmSimd.h、core_cmFunc.h、core_cmInstr.h、core_cm4.h(因为F429是M4系列的)

将下面2个文件夹复制到新建的Library里面。

  复制\Libraries\STM32F4xx_StdPeriph_Driver\src

  复制\Libraries\STM32F4xx_StdPeriph_Driver\inc

将下面的一个文件夹中的3个文件复制到新建的Driver里。

  在\Project\STM32F4xx_StdPeriph_Templates,

  复制stm32f4xx_conf.h、stm32f4xx_it.c、stm32f4xx_it.h

  并且在目录下新建文件Bsp.c和Bsp.h(本条可忽略)

将复制下面的两个文件到User里

  在\Project\STM32F4xx_StdPeriph_Templates中,复制main.c和main.h

  根据情况删除main.c文件中多余的注释。

======

创建&配置项目

创建项目,选定芯片型号,确定,关闭弹出的窗口(或者选NO)

配置组:

  1.点击:Manage Project Items    

  2.填好Groups下项目如图所示

    

  3.填好4个Groups对应的Files

    1)CMSIS

      Add Files->将对话框弹出来的文件类型选为“All Files(*.*)”->选择文件(直至确保所有文件都加进去为止)

    2)Uesr

      仅需要添加main.c即可

    3)Driver

      同2),添加stm32f4xx_it.c即可

    4)Library

      只需要添加src文件夹里面的所有文件

  4.点击OK

      (大致效果如图)

  

配置输出文件夹:选Project\Output即可(注意:Output文件夹中的文件是可以随时删除的)

  

配置预定义块:

  将  USE_STDPERIPH_DRIVER STM32F429_439xx  这两个词复制进去。

    

    请注意,这里的 STM32F429_439xx 要根据芯片的型号填写(包括大小写),在stm32f4xx.h内注释部分能够找到

    (如图)

        

    请注意:F4系列比较特殊,本人在亲自配置的时候发现要么 stm32f4xx_fmc.c报错要么stm32f4xx_fsmc.c报错。

    后来发现原因是因为F427以及高级型号支持fmc功能,所以如果再导入fsmc则导致冲突。

    (支持FMC的芯片移除FSMC;不支持FMC的芯片移除FMC)

添加工程目录:

  将 除开Project以外的文件夹 依次添加进来即可

    

以上,点击编译如果没有error就证明你成功了。

=====

配置下载器

这是代码烧录到芯片中不可或缺的一个步骤

  1.配置下载器(根据自己拥有的下载器选择)

  

  

  2.匹配flash(根据芯片选好对应的Flash大小)

  

  

3.驱动设置

   以上便是创建一个模板项目工程、以及烧录在板子中的大致步骤。

================

万事开头难,配置好了这个环境以后,我们还有很长的路要走。

STM32学习笔记:创建工程模板的更多相关文章

  1. STM32学习笔记——新建工程模板步骤(向原子哥学习)

    1.  在创建工程之前,先在电脑的某个目录下面建立一个文件夹,我们先把它命名为Template,后面建立的工程可以放在这个文件夹下.在 Template 工程目录下面,新建 3 个文件夹USER , ...

  2. STM32学习笔记——OLED屏

    STM32学习笔记--OLED屏 OLED屏的特点: 1.  模块有单色和双色可选,单色为纯蓝色,双色为黄蓝双色(本人选用双色): 2.  显示尺寸为0.96寸 3.  分辨率为128*64 4.   ...

  3. STM32学习笔记——点亮LED

    STM32学习笔记——点亮LED 本人学习STM32是直接通过操作stm32的寄存器,使用的开发板是野火ISO-V2版本: 先简单的介绍一下stm32的GPIO: stm32的GPIO有多种模式: 1 ...

  4. stm32学习笔记----双串口同时打开时的printf()问题

    stm32学习笔记----双串口同时打开时的printf()问题 最近因为要使用串口2外接PN532芯片实现通信,另一方面,要使用串口1来将一些提示信息输出到上位机,于是重定义了printf(),使其 ...

  5. stm32学习笔记——外部中断的使用

    stm32学习笔记——外部中断的使用 基本概念 stm32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间只能使用一个.比如说,PA0,PB0 ...

  6. STM32学习笔记(四)——串口控制LED(中断方式)

    目录: 一.时钟使能,包括GPIO的时钟和串口的时钟使能 二.设置引脚复用映射 三.GPIO的初始化配置,注意要设置为复用模式 四.串口参数初始化配置 五.中断分组和中断优先级配置 六.设置串口中断类 ...

  7. STM32学习笔记-NVIC中断知识点

    STM32学习笔记-NVIC中断知识点总结 中断优先级设置步骤 1. 系统运行后先设置中断优先级分组 函数:void NVIC_PriorityGroupConfig(uint32_tNVIC_Pri ...

  8. STM32学习笔记(一)——点亮一个LED

    引言 最近报名了2017全国大学生电子设计竞赛,我们学校是第一次参加这个比赛,由于8/9月份就要比赛了,所以现在准备是比较晚的了,指导老师说只能做控制类的题目了,让我们学习一下STM32单片机,51到 ...

  9. STM32学习笔记(二) 基于STM32-GPIO的流水灯实现

    学会了如何新建一个工程模板,下面就要开始动手实践了.像c/c++中经典的入门代码"hello world"一样,流水灯作为最简单的硬件设备在单片机领域也是入门首推.如果你已经有了一 ...

随机推荐

  1. C++11常用特性介绍——列表初始化

    一.列表初始化 1)C++11以前,定义初始化的几种不同形式,如下: int data = 0;   //赋值初始化 int data = {0};   //花括号初始化 int data(0); / ...

  2. FTP文件传输服务!

    一.FTP  连接及传输模式 1.控制连接:TCP 21,用于发送 FTP 命令信息2.数据连接:TCP 20,用于上传.下载数据3.数据连接的建立类型: (1)主动模式:服务器主动发起数据连接 (2 ...

  3. Django继承drf的user模型的demo

    1.安装虚拟环境 #mkvirtualenv drfdemo -p python3 #pip install django #pip install djangorestframework #pip ...

  4. C/C++网络编程6——实现基于UDP的服务器端/客户端

    通过前面几节的内容,我们已经可以实现基本的C/S结构的程序了,但是当多个客户端同时向服务器端请求服务时,服务器端只能按顺序一个一个的服务,这种情况下,客户端的用户是无法忍受的.所以虚实现并发的服务器端 ...

  5. MySQL更改默认的root账户密码

    编辑mysql的配置文件:my.ini(在MySql安装目录下). 打开配置文件,在文件最后一行添加:skip-grant-tables,然后保存退出 意思为就是在启mysql时不启动grant-ta ...

  6. 简单优化MySQL(后续在补充)

    如何优化: ---从设计表结构的角度出发: 用多个小表代替一个大表,注意不要过度设计 批量插入代替循环插入 合理控制缓存空间大小,一般来说其大小设置为几十兆比较合适 可以通过 SQL_CACHE 和 ...

  7. ALSA 有关文档

    Alsa项目的官方网址:http://www.alsa-project.org/ Alsa LIB API Reference:http://www.alsa-project.org/alsa-doc ...

  8. [转]:Ubuntu 下Apache安装和配置

    [转]:Ubuntu 下Apache安装和配置_服务器应用_Linux公社-Linux系统门户网站  https://www.linuxidc.com/Linux/2013-06/85827.htm ...

  9. ANSYS-MFC二次开发

    目录 1. 开发流程 2. 开发代码 1. 开发流程 ANSYS-MFC二次开发的思路其实是特别简单的,通常MFC主要是设计界面,然后从MFC界面中读取要设计的参数,然后根据这些设置了的参数生成APD ...

  10. Maven 项目中使用 logback

    添加依赖 <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logsta ...