吴放 发表于 2018-6-11 11:57

STM32 CUBE开发学习贴

这段时间在学习STM32CUBE开发模式,将学习中遇到的问题和收获与大家分享。

吴放 发表于 2018-6-11 12:01

主要是通过阅读《STM32库开发实战指南》进行学习,但是书中的开发方式主要是通过标准库开发,与CUBE开发方式有差异,需要自己改动一些程序。不过《STM32库开发实战指南》还是比较推荐,写的很好。

吴放 发表于 2018-6-11 12:09

该书已上传21IC网的资料库,等审核通过,就将链接贴过来,不需要积分哦!

吴放 发表于 2018-6-11 12:09

全书分为四个部分,第一部分是库开发初级篇,嵌入式工程师成长之路和库的了解和GPIO的学习。
第二部分是库开发中级篇,讲解外设使用;
第三部分是库开发高级篇,各个外设的实战演练,如MP3等,属于项目实战;
第四部分是库开发系统篇,这是嵌入式系统开发的必经之路,讲解uC/OS最新版本在STM32中的移植。

吴放 发表于 2018-6-11 12:16

第一部分:库开发初级篇1、嵌入式职业规划如果职业规划是系统架构师,需要熟悉整个嵌入式领域,能够协调不同领域的开发工程师进行项目开发。1) 适应使用固件库的开发方式,加强运用C语言的能力,建立工程意识;2) 熟悉Cortex-M系列芯片架构,了解CMSIS标准,熟悉STM32的总线架构;3) 掌握I2C,SPI,SDIO,CAN,TCP/IP等各种通信协议。

吴放 发表于 2018-6-11 12:28

2、STM32固件库STM32库是由ST公司针对STM32提供的函数借口,即API。开发者可调用这些函数接口来配置STM32的寄存器。库是架设在寄存器与用户驱动层之间的代码,向下处理与寄存器直接相关的配置,向上为用户提供配置寄存器的接口。CMSIS标准ARM公司出售其芯片技术授权,ST公司与其他芯片生产商如TI,负责设计的是在内核之外的部件,被称为核外外设或片上外设、设备外设。如芯片内部的模数转换外设ADC、串口UART、定时器TIM等。内核和外设,类似于PC上的CPU与主板、内存、显卡、硬盘的关系。因为基于Cortex的系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,为解决不同芯片厂商生产的Cortex微控制器软件的兼容性问题,ARM与芯片厂商建立了一个CMSIS标准(cortex Microcontroller software Interface standard)。CMSIS标准中最主要的是CMSIS核心层,它包括:内核函数层:其中包含用于访问内核寄存器的名称,地址定义,主要有ARM公司提供;设备外设访问层:提供片上的核外外设的地址和终端定义,主要有芯片厂商提供。(类似于板级的配置层,有板级开发者提供,提供板级的外设定义)针对STM32F10x库,关于内核和外设的库文件主要有以下内容:(1)Core_cm3.C文件该文件的作用是为采用Cortex-M3核设计SOC的芯片商设计的芯片外设提供一个进入CM3内核的接口。(2)System_stm32f10x.c文件在devicesupport文件夹下的是启动文件、外设寄存器定义和中断向量定义层的一些文件,由ST公司提供。该文件的功能是内置系统时钟和总线时钟。(3)stm32f10x.h文件   Stm32f10x.h是非常底层的文件。包含STM32寄存器地址和结构体类型定义。(4)启动文件   启动文件是任何处理器在上电复位之后最先运行的一段汇编语言。(5)STM32F10x_stdperiph_driver文件夹   该文件夹下有inc和src两个文件夹,属于CMSIS的设备外设函数部分。Src里面是每个设备外设的驱动程序,这些外设是芯片制造商在cortex-M3核外加进去的。这两个文件夹中还有一个很特别的misc.c文件,在配置中断时,我们必须把这个文件添加到工程中。(6)stm32f10x_it.c和stm32f10x_conf.h文件   Stm32f10x_conf.h文件可以配置是否使用断言编译选项。

吴放 发表于 2018-6-11 12:31

虽然CubeMX开发方式简化了开发过程,但是了解库开发的理念可以帮助理解CubeMX开发的代码,同时对于修改CubeMX程序和进行嵌入式开发有很大的帮助。
页: [1]
查看完整版本: STM32 CUBE开发学习贴