cubemx用来生成platform。

++++++++++++++++++++++++++
复制IOC工程。
新建一个文件夹,将需要的IOC文件拷贝到新建的文件夹中。
修改IOC文件的名称,
然后用CubeMX打开,
修改project manager的相关选项,
之后save project。

++++++++++++++++++++++++++
pinout and configuration

sys设置,
debug千万不能设置为disable,必须设置为serial wire模式。否则会锁死芯片。
如果选择了serial wire,那么在GPIO的报表中,会有这两个引脚的条目。
timbase设置为systick。

rcc设置,
HSE选择crystal,外部晶振,相应的pin变成绿色。
LSE根据情况,选择disable或者crystal或者bypass。
MCO1根据情况,勾选或者不勾选,
MCO2和I2S_CKIN,是互斥的,二者只能勾选其一。

nvic设置,
根据中断使用的情况设置。一般默认即可。

iwdg设置,
根据情况设置iwdg,默认不使能。

wwdg设置,
根据情况设置wwdg,默认不使能。

gpio设置,
如果不想使用某个pin,那么选择reset state,pin会变成灰色,左键点击,选择某一种gpio mode后,变成绿色,同时会在gpio的报表中显示一个条目。
可以设置mode,pullup, user label等。
设置了user label,生成工程时,会有特定名字的宏定义和结构体。

adc设置,
可以选择pin脚输入的in0到in15一共16个通道,也可以选择内部通道,vref, vbat,temprature,

dac设置,
可以选择out1或者out2.

timer设置,
根据情况选择使能或者不使能。

connective设置,
根据情况选择使能或者不使能。

multimedia设置,
根据情况选择使能或者不使能。

RNG设置,
根据情况选择使能或者不使能。

CRC设置,
根据情况选择使能或者不使能。

middleware设置,
根据情况选择中间件。

+++++++++++++++++++++++++++++
clock configuration

时钟流向从左到右,
STM32 有4个独立时钟源:HSI、HSE、LSI、LSE。
HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。
HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。
LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。 
LSE是低速外部时钟,接频率为32.768kHz的石英晶体。

LSI是作为IWDGCLK(独立看门狗)时钟源和RTC时钟源 而独立使用 。
HSI,HSE,PLL,这三个经过分频或者倍频,作为sysclk来使用。
PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。
USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获取。
MCO脚上,可以选择为PLL输出的分频、HSI、HSE、或者系统时钟。可以把时钟信号输出供外部使用。

系统时钟SYSCLK通过AHB分频器分频后送给各模块使用,AHB分频器输出的时钟送给5大模块使用,
内核总线:送给AHB总线、内核、内存和DMA使用的HCLK时钟。
Tick定时器:通过8分频后送给Cortex的系统定时器时钟。
I2S总线:直接送给Cortex的空闲运行时钟FCLK。
APB1外设:送给APB1分频器。
APB2外设:送给APB2分频器。

APB1分频器输出一路供APB1外设使用PCLK1,另一路送给通用定时器使用,时钟输出供定时器2-7使用。
APB2分频器输出一路供APB2外设使用PCLK2,另一路送给高级定时器,供定时器1和定时器8使用。还有一路输出供ADC分频器使用,分频后送给ADC模块使用。

+++++++++++++++++++++++++++++
project manager

在project选项卡中,

project name,
设置工程名XXX.ioc。

project location,
设置IOC工程的位置。

toolchain folder location,
设置输出的RVMDK的工程的位置。

在code generator选项卡中,
勾选 copy all used library file。
勾选delete previously generated files.

+++++++++++++++++++++++++++++
tools

++++++++++++++++++++++++++++
generate code
生成RVMDK的输出文件夹。

++++++++++++++++++++++++++++++++++++++++++++
实践中,我们可以采取cubemx和keil相结合的方式来工作,
在cubemx的工作区文件夹下,由cubemx生成IOC工程,并输出RVMDK的工程文件夹,然后将RVMDK的工程文件夹拷贝出来, 放到keil的工作区文件夹下,进行进一步的开发。

STM32第二课(cubemx,clk,gpio,)相关推荐

  1. 【STM32】基础知识 第十课 CubeMx

    [STM32]基础知识 第十课 CubeMx STM32 CubeMX 简介 安装 JAVA CubeMX 安装 新建 STM32 CubeMX 工程步骤 新建工程 时钟模块配置 GPIO 配置 生成 ...

  2. PT静态时序分析 第一课 第二课

    绪论 目录: 第一到第四课比较重要 第一课 STA原理 静态时序分析是一种穷尽分析方法,用以衡量电路性能. STA主要有三个步骤: 1.设计被分解为时序路径(timing path) 2.计算所有路径 ...

  3. STM32 HAL库 CubeMX教程(五)串口通信基础

    STM32 HAL库 CubeMX教程(五)串口通信基础 串口通信简介 CubeMX配置 初始化程序分析 程序编写 参考文献 STM32 HAL库 CubeMX系列教程 目录 串口通信简介 UART: ...

  4. 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫

    系列教程 手把手教你写电商爬虫-第一课 找个软柿子捏捏 如果没有看过第一课的朋友,请先移步第一课,第一课讲了一些基础性的东西,通过软柿子"切糕王子"这个电商网站好好的练了一次手,相 ...

  5. android 集合 内存泄漏,Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )...

    一.我们通常把一些对象的引用加入到了集合容器(比如ArrayList)中,当我们不需要该对象时,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大.如果这个集合是static的话,那情况就更严重 ...

  6. cdata节 赋值变量_JS原生练习题:第二课第5~12节

    第五节:函数传参,改变Div任意属性的值 函数传参,改变Div任意属性的值 属性名: 属性值: 确定 重置 在上方输入"属性名"和"属性值",点击确认按钮查看效 ...

  7. 0.0 目录-深度学习第二课《改善神经网络》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  8. Coursera公开课笔记: 斯坦福大学机器学习第二课“单变量线性回归(Linear regression with one variable)”

    Coursera公开课笔记: 斯坦福大学机器学习第二课"单变量线性回归(Linear regression with one variable)" 发表于 2012年05月6号 由 ...

  9. GIS讲堂第二课-地图切片简介以及OL中的调用

    概述: 在大家的支持与帮助下,"GIS讲堂"第二课已落下帷幕,在此对大家的支持与帮助表示衷心的感谢,同时呢,也给大家致歉,由于感冒的缘故,讲课的时候的各种毛病还请大家多多包涵,下面 ...

最新文章

  1. elasticsearch 路由文档到分片
  2. 正则表达式: 正向预查和负向预查
  3. pycharm使用import numpy报错
  4. Day-4: Python函数
  5. Leetcode No.146 ****
  6. VS调试启动编辑并继续功能
  7. [ZJOI2009]取石子游戏
  8. hdu 4381(背包变形)
  9. 数据操纵:SELECT, INSERT, UPDATE, DELETE
  10. Windows最常用的几个网络CMD命令总结
  11. HDOJ--1728--逃离迷宫(广搜)
  12. 3D数学基础(二)| 向量
  13. 抛弃clover,爱上QTTabBar
  14. OMC IT监控运维管理平台建设方案
  15. 统计学习方法——机器学习和统计学习
  16. 红豆 2022年3月16日
  17. 还在使用BeanUtils.copyProperties()? 来看看MapStruct,强大五倍
  18. pcm5102a解码芯片音质评测_配备独立解码芯片 性能旗舰iQOO Pro音质再Hi-Fi
  19. MindSpore数据集加载-GeneratorDataset数据处理报错:The pointer[cnode] is null
  20. Vue2.x - Vue Router

热门文章

  1. Docker容器运行GUI程序的方法(直接进入Docker容器运行或通过SSH连接Docker容器运行)
  2. 360手机刷机·EdXposed安装和使用教程
  3. JAVA 与 JVM
  4. adams数据导出matlab,adams数据导入matlab
  5. OpenLayers6 裁切地图(Layer Clipping)
  6. druid监控页面授权
  7. 计算机通信与网络(一)
  8. 行云创新受邀加入信通院云原生成熟度专家组,开启业内首批云原生技术架构/应用成熟度评估测试
  9. mysql登录如何重置密码忘记_MySql登陆密码忘记了怎么办?MySQL重置root密码方法...
  10. 给大家分享一下指纹挂锁的方案