STM32Cube基础工程配置
开发板:正点原子STM32F4探索者 (2019-08-10 22:04:39)
开发环境:MDK5.28.0.0 + STM32CubeMX5.3.0 + STM32CubeF4 V1.24.0
内容:使用STM32Cube配置LED0和UART1,实现LED0闪烁和UART1发送

STM32CubeMX选择芯片后界面。左侧栏为功能列表,配置相应的功能打开列表,会有详细功能名称;右侧为ST芯片模型,引脚分布。首先,应该配置芯片的时钟来源——芯片的时钟很重要,根据硬件实际配置时钟来源:打开 System Core 栏目下的RCC,即为芯片时钟配置。

RCC 配置界面。以外部时钟为例,STM32CubeMX中外部时钟配置可选类型为 Disable 、 BYPASS Clock Source(旁路时钟源) 、Crystal/Ceramic Resonator(石英/陶瓷 晶振) 三种类型。参考手册中介绍 HSE 如下图:

外部时钟即为旁路时钟源,只需要外部提供时钟接入OSC_IN引脚,OSC_OUT引脚悬空,对应选择为BYPASS Clock Source;谐振器即相当于石英/陶瓷 晶振,OSC_IN 与 OSC_OUT引脚都要连接,对应选择为Crystal/Ceramic Resonator。开发板使用的是晶振,所以RCC的HSE选项设置为Crystal/Ceramic Resonator。时钟的来源确定后需要配置芯片内部的多个时钟线,进入Clock Configuration页面,可以根据时钟树直观地配置时钟。下图所示为开发板时钟配置,开启外部时钟8MHz,PLL时钟来源于HSE,经过锁相环的分频与倍频后得到168MHz时钟,System Clock Mux时钟来源选择PLLCLK,AHB分频器设置1分频(不分频),得到168MHz的主频时钟,HCLK = 168MHz。

时钟配置完成以后,可以在 Connectivity 栏开启UART功能,USART1可以开启的模式有Asynchronous——异步通讯、synchronous——同步通讯、Single Wire(Half-Duplex)——单线(半双工)通讯,此处配置为异步通讯。

此外,这些功能也可以通过右侧的ST芯片模型直接在管脚设置。这种设置方法只需要我们单击对应的管脚,就会列出该管脚对应的功能,点击选择即可。从左侧列表开启功能时会默认选择一组引脚,如果与实际工程的引脚不符合可以采用先设置引脚功能再从左侧开启功能。如果需要启用仿真,还要配置相应的引脚并开启对应功能,否则使用仿真器会发生出现问题。


整体功能开启完毕后,可以从NVIC统一设置中断开启和优先级配置;在DMA栏统一设置相应数据流;GPIO栏可以设置启用的所有I/O接口,还可以自己定义这个引脚的名字(User Lable);另外生成的函数会根据CubeMx的参数进行配置,所以在功能栏里设置对应功能的参数(parameter)。
功能配置完成无误后,就可以生成代码了。点击进入Project Manager界面,点击Project,在 Project Setting 框里设置Project Name、Project Location,Toolchain/IDE选项为设置生成工程的IDE类型,常用的是MDK-ARM V5(KEIL)和 EWARM V7(IAR)两种。设置完成后点击GENERATE CODE 即可生成工程代码。
STM32Cube基础工程配置的更多相关文章
- 细聊 Cocoapods 与 Xcode 工程配置
前言 文章比较长,所以在文章的开头我打算简单介绍一下这篇文章将要讲述的内容,读者可以选择通篇细度,也可以直接找到自己感兴趣的部分. 既然是谈 Cocoapods,那首先要搞明白它出现的背景.有经验的开 ...
- net core Webapi基础工程搭建(六)——数据库操作_Part 2
目录 前言 开始 使用 小结 前言 昨天是写着写着发现,时间不早了,已经养成了晚上下班抽时间看看能写点儿啥的习惯(貌似),今天实在是不想让昨天没做完的事情影响,所以又坐下,沉下心(周末了),开始把数据 ...
- net core Webapi基础工程搭建(二)——创建工程
目录 前言 创建工程 工程文件概述(个人理解) 运行 小结 前言 前面介绍了开发工具及net core版本,后端工程的框架结构开发工具及环境,因为是基础工程,所以没考虑太复杂的框架,如果有架构师请勿喷 ...
- Git 实用基础(配置,建库,提交,推送 GitHub)
Git 实用基础(配置,建库,提交,推送 GitHub) SVN ? Git ? 目前市面上主流的版本控制系统就是 SVN 和 Git . 两者的区别简单通俗地说就是,版本数据是否有在本地. 如果觉得 ...
- UE4之Slate:纯C++工程配置
概述: Slate是UE4提供的UI框架,整个UE4 Editor UI都是使用Slate构建的: Slate的官方文档:[Slate UI框架] Slate底层内容,中文环境下能搜索到的有效资源也不 ...
- 【No.1 Ionic】基础环境配置
Node 安装 git clone https://github.com/nodejs/node cd node ./configure make sudo make install node -v ...
- ios 工程配置统一增加类的前缀(知识点也只能算知识点)
在前边的代码规范中提及:团队开发或者个人开发为了打包或者自己工程中避免创建新的类核第三方系统的重复增加类的统一前缀!!又很多人问我这种开发小技巧.下面我就普及一下: 1.首先选中你的工程配置 2.然后 ...
- pcl1.7.2_vs2013_x64工程配置
pcl1.7.2_vs2013_x64工程配置 C:\Program Files\PCL 1.7.2\include\pcl-1.7;C:\Program Files\PCL 1.7.2\3rdPar ...
- vs如何将工程配置,保存到属性表
上次讲到新建一个opencv工程的配置过程,整个流程下来还是非常麻烦的.每次新建一个工程都要走这个流程的话就要疯了! 现在介绍一种将工程配置,保存到属性表的方法,那么下次新建工程时,只要添加这个属性表 ...
随机推荐
- c#执行sql超时
超时分为多种,SqlConnection有超时选项, SqlDataAdapter也有超时选项设置如下: SqlConnection:就用链接字符串给予的Timeout设置就行单位秒: SqlData ...
- Linux下BLAST+的本地化(BLAST 2.2.29+)
链接:http://blog.sciencenet.cn/home.php?mod=space&uid=830496&do=blog&quickforward=1&id ...
- 随笔记录--RegExp类型
阅读Javascript高级程序设计第五章 -- RegExp类型总结 对于基础教程部分, 有小伙伴不熟悉的,可以参考 正则表达式 - 教程 1. 基础部分回顾: ECMASript通过RegExp类 ...
- dapi 基于Django的轻量级测试平台三 接口关联
QQ群: GitHub:https://github.com/yjlch1016/dapi 一.接口关联思路: 在接口测试中, 很多场景下, 上一个接口的出参要作为下一个接口的入参, 即上一个接口的响 ...
- Codeforces Good Bye 2016 E. New Year and Old Subsequence
传送门 题意: 给出一个长度为\(n\)的串,现在有\(q\)个询问,每个询问是一个区间\([l,r]\),要回答在区间\([l,r]\)中,最少需要删多少个数,满足区间中包含\(2017\)的子序列 ...
- 201871010133-赵永军《面向对象程序设计(java)》第二周学习总结
201871010133-赵永军<面向对象程序设计(java)>第二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...
- HTTP协议之chunk,单页应用这样的动态页面,怎么获取Content-Length的办法
当客户端向服务器请求一个静态页面或者一张图片时,服务器可以很清楚的知道内容大小,然后通过Content-Length消息首部字段告诉客户端需要接收多少数据.但是如果是动态页面等时,服务器是不可能预先知 ...
- 移动端touch与click区别--移动端开发整理笔记(五)
移动端用touch还是click? 在移动端开发中,click事件有300ms的延时,由来源于iphone处理双击缩放功能种下的坑.因为用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器 ...
- Codeforces886(Technocup2018) F Symmetric Projections
Codeforces886(Technocup2018) F Symmetric Projections You are given a set of n points on the plane. A ...
- 遍历List 中 Map 的值
实现思路: List list = new ArrayList(); Map map = new HashMap(); ;i<list.size;i++){ map=list.get(i); f ...