STM32第二课(cubemx,clk,gpio,)

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的工作区文件夹下,进行进一步的开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值