上个博文理论讲解的东西太多,太复杂,这里把所有步骤全部贴出 1.新建一个工程文件夹LED 2.LED文件夹下建立如下文件夹 3.Project –>New Uvision Project 到USER文件夹下 4.执行如下复制操作 5. 定位到我们刚才建立的目录STM32F10x_FWLib/src下面,把所有文件添加进去 用同样的方法,选择CORE添加如下文件: 用同样的方法,选择USER添加如下文件 选择魔术棒工具设置编译中间文件目录位OBJ OK之后,在Define里添加:STM32F10X…
操作系统:win10 1.文件目录 (在cmd下用"cd 文件夹" 进入到要显示的文件夹,如cd d:\en.stsw-stm32054,然后输入tree 回车就会出现上图的目录结构) Libraries 文件夹下面有CMSIS和STM32F10x_StdPeriph_Driver两个目录, 其 中CMSIS目录下面是启动文件,STM32F10x_StdPeriph_Driver放的是STM32固件库源码文件.源文件目录下面的inc目录存放的是stm32f10x_xxx.h头文件,无需…
文章包含STM32固件库介绍和工程模板搭建两方面内容. 一.STM32固件库介绍 要建立工程模板,首先要对STM32的固件库有所了解.STM32的固件可以从ST官网下载,网址为:http://www.stmicroelectronics.com.cn/web/cn/catalog/tools/FM147/CL1794/SC961/SS1743,下载后的文件夹组织结构如图1所示. 图1 STM32固件库文件夹 为了更清楚的了解这个文件夹,我们把Libraries文件夹展开来看,如图2的所示.其中C…
固件库结构 本文使用的固件库是STM32F10x_StdPeriph_Lib_V3.5.0,可以在官网获取.该固件库包含四个文件夹和一个库的说明文档,如下图所示,stm32f10x_stdperiph_lib_um这个英文的帮助文档非常有用,可以很方便地了解某个库函数的使用方法. Project Project文件夹是一些写好的官方例程,便于学习和开发. Libraries/CMSIS/CoreSupport Libraries文件夹下包含了固件库的源代码和启动文件,是固件库的核心所在.如果想要…
1.新建文件夹如图: 2.新建项目在USER文件夹中,选cpu如图: 若再弹出窗口, 直接点cancel 3.删了这俩文件夹: 4.复制文件到fwlib: src 存放的是固件库的.c 文件, inc 存放的是对应的.h 文件,每个外设对应一个.c 文件和一个.h 头文件 5.复制文件到core 很玄学的变了名字.. 6.复制文件到user 7.把源文件添加到工程 在keil中,左边一栏,对着target右键,manage project items FWLIB 选src里所有文件,删一个: c…
一.概论: 在STM32_USB-FS-Device_Lib_V4.1.0的Custom_HID工程基础上进行修改: 开发一款设备,有三个HID接口,mouse+pen+自定义HID 其中:0_HID 是mouse(端点1 IN):1_HID 是pen(端点2 IN):2_HID 是自定义(端点3 IN-OUT). 在设备管理器和bus hound可以看到如下: 二.修改步骤: 1.修改设备$$配置描述符 /* USB Standard Device Descriptor */ const ui…
ST(意法半导体)为了方便用户开发程序,提供了一套丰富的 STM32 固件库.固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API) .固件库将这些寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用,大多数场合下,你不需要去知道操作的是哪个寄存器,你只需要知道调用哪些函数即可. ARM 公司为了能让不同的芯片公司生产的 Cortex-M3 芯片能在软件上基本兼容,和芯片生产商共同提出了一套标准 CMSIS 标准(Cortex  Mic…
对于我这种以前只接触过51和AVR单片机编程的小菜来说,现在开始学习STM32的编程,对于函数的功能以及C语言的语法都还好理解,难的是它提供的那一套硬件抽象层(HAL)驱动是怎么和其他的东东搭配在一起组成一个又一个的工程. 首先上两张从ST官方提供的HAL固件库文档截图 从这两张图的话,能对它的构架看出个一二,下面稍稍具体一点分析 HAL固件库编程,它的文件组织大致分三个部分 - HAL驱动 - CMSIS驱动 - 用户编写程序 而假如你使用的是ST官网的开发板,那么你还有一套现成的驱动可供使用…
Cube固件库是ST现在主推的固件库,并且在它的官网已经找不到原来的标准库可供下载.Cube固件库的构架图如下 这种新式构架可以有效的加快软件工程师的工程进度. 新建一个工程项目主要包括以下的步骤: 1.使用它提供的模板或是拷贝一个现有的工程 2.加入你可能用到的middleware 3.拷贝相应的HAL及middleware的配置头文件到你的工程中 4.检查主函数中调用的HAL_Init() 5.配置系统时钟 6.初始化外围 7.这一步就是根据你的设计要求写你自己的工程了…
通过STM32CUBEMX生成DMA读写sdio的工程,再读写过程中总会卡死在DMA中断等待读写完成的while中,最终发现while等待的标志在SDIO的中断里置位的,而SDIO中断优先级如果小于或等于DMA中断优先级,则SDIO中断永远不能抢占DMA中断,DMA处于持续等待中,解决办法由两种,一种是直接提高SDIO中断优先级到比DMA中断优先级高,第二种是直接在HAL库中卡住的中断等待函数中注释掉while等待. 另外还有一点就是在SDIO数据读写的时候需要注意的两点,一个是读写数据最好四字…