怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)

怎样快速入门一款全新的单片机

因为成本或者工程的特殊性,有时候不得不换用单片机,在单片机选型之后(一般官方都会提供选型手册),就要进行对这个芯片的开发。
一个新的单片机的开发的技术支持无非来自官方和非官方(一些第三方大神的例程),首先要以官方为准,首先是官方的datasheet,还有官方的例程。
当还是搞不懂的时候,再去找第三代,结合手册和官方例程研究。

datasheet

看datasheet真的是一门技术活,一个STM32F0的datasheet都有779页,全看完是不可能的,要有针对性的看,比如ADC就看ADC,一般看datasheet,我喜欢先看大标题,确定他是干嘛的,然后简单的看一下介绍,然后看图,比如ADC的转换
怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)_第1张图片
图中表现的很清楚,等待RDY位置位后,软件写ADSTART位,ADC开始转换,当转换结束EOC置位,最后一个通道转换结束EOS置位。ADC转换的一个流程结束。
像STM32的datasheet中,一般一个流程后都会有代码例子和寄存器配置的先后顺序。
datasheet中,整体的框图也是很重要的,比如ADC的整体框图,他介绍了ADC在触发模式下,哪些外设可以做触发源,以及数据是在哪条总线上传输的
怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)_第2张图片 ADC block diagram

官方例程

芯片厂商基本上都会提供官方外设的例程,只要去官方网站上下载即可,之前用的八位机有的都是有官方例程的,实在不行去官网询问,请求技术支持。

STM32单片机的入门指南

stm32在目前的市场上可以说是风生水起,我就但单拉出来了。

STM32cubeMX

STM32cubeMX 是之前ST推出的特别好用的一个对外设进行配置的软件,他可以大大的节约我们的时间。STM32cubeMX做个PWM的小实验。
首先打开STM32cubeMX,新建一个工程,选择芯片,这里我用的是STM32F030。
怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)_第3张图片
然后配置时钟,点击Clock Configuration ,将时钟配知道最大。
配置定时器,将TIM1的CH1配置成PWM输出,预分频值为0,将自动重装载值设置成1200 ,频率就是1/(1200/(48000000)),然后设置占空比50%,在ccr1里写600.
然后生成工程(在project manager里设置选用的库,我用的是LL库)

结合手册猜库函数的意思,或者看官方例程

把STM32cubeMX生成的代码直接烧录到单片机中,并没有什么效果,debug一下,观察寄存器,
怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)_第4张图片
发现CCR1的值有了,ARR的值也有了,为什么CNT寄存器没有值呢(计数值),这个时候可以去官方手册去找答案,也可以去结合官方例程对比一下。

结合手册

打开STM32F0的参考手册,找到定时器,并且找到TIM1计数和输出相关的章节,可以看到他介绍了好多种计数模式,结合需求选择呀(我们选的是向上计数,在Cube那里)
我找了N久之后看到了下面的两句话在这里插入图片描述
怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)_第5张图片
就是使能啊,当然也可以这么做去看官方的例程,一般官方的例程所在的文件夹都是在,用户->你的用户名->STM32Cube->Repository->STM32Cube_FW_F0_V1.9.0(这是使用的产品系列)->Projects(在这个文件夹里,就有好多官方的板子附带的例程)->STM32F072RB-Nucleo->Examples_LL(因为我用的是LL库,当然有HAL库的,还有俩库混写的)->TIM->TIM_PWMOutput
在官方的库了,看到了他使能了下面的东西,LL库还是挺好用的,基本上都是LL_(外设名字)_(描述),他使能了中断,在这里我们不用,不使能,关于UEV的也不用管他
怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)_第6张图片
结合手册,添加下面三行代码OK
怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)_第7张图片

小技巧

Emmmm.看图把
怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)_第8张图片
isactive一般是获取当前位的状态,getXXX一般是获取当前寄存器的值,set一般是置位,DeInit一般是直接恢复上电状态。clear一般是清标准。
怎样快速入门一款全新的单片机和STM32单片机的LL库入门指南(个人经验,超详细的PWM配置)_第9张图片
函数跳进去后,可以看到描述,以及传参的值

你可能感兴趣的:(单片机)