开始学习stm32

说说我的教材吧

开始学习stm32_第1张图片

手上暂时没有其他的书了,就只能将就着用这本了,不过听说口碑还是不错的。

配置开发环境

MDK5
FlyMcu

这两个是必要的开发程序,网上随便一搜一大把教程。MDK5是可以安装C51的库进行51单片机的开发的,MDK5还有实时语法检测,用起来很爽。

除了这两个软件以外,还要进行stm32的配置(应该叫做 新建基于固件库的MDK5工程模板,网上也是一堆教程。

学到的新知识

  • stm32居然有多个时钟源,这是我之前不知道的,多个时钟源的原因是为了节省资源,时钟越快功耗越大,同时抗电磁干扰能力也会越弱,而有些外设需要的时钟并不需要太快,所以stm32通过分频,不同的5个时钟源给不同的外设。
  • 结构体的使用。之前学习51单片机时,其实很多c语言的知识都没有用上的,一直不明白那些知识的用处。在我看stm32的固件库的时候,看见了很多函数的参数都是用结构体来传递的,这样的好处是参数的个数比较容易更改,只需要更改结构体中的参数个数就可以了。
  • 定义自己的类型。这也是我在看stm32的固件库才了解到的,虽然我很久以前就知道要定义自己的数据类型,但一直都很少用,因为作用不大,在stm32固件库中看见了大量的使用,固件库中所有的数据类型都是使用自己的定义,我觉得这样的好处是可以增加程序的易读性和兼容性。
/*stm32f10x.h*/
...
typedef struct
{
  __IO uint16_t CR1;
  uint16_t  RESERVED0;
  __IO uint16_t CR2;
  uint16_t  RESERVED1;
...
} TIM_TypeDef;
...
/*stm32f10x_tim.h*/
...
void TIM_DeInit(TIM_TypeDef* TIMx);
...

这是固件库中的一段对结构体的用法和定义自己的数据类型。

你可能感兴趣的:(开始学习stm32)