好文档 - 专业文书写作范文服务资料分享网站

STM32固件库详解

天下 分享 时间: 加入收藏 我要投稿 点赞

15 /* #include \ 16

17 #include \ 18

19 /* #include \ 20

21 /* #include \ 22

23 /* #include \ 24

25 #include \ 26

27 /* #include \ 28

29 /* #include \ 30

31 /* #include \ 32

33 #include \ 34

35 /* #include \ 36

37 /* #include \ 38

39 /* #include \ 40

41 /* #include \ 42

43 /* #include \ 44

45 /* #include \ 46

47 #include \ /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */

上面一段程序来自于例程中的AD采集程序,程序使用了AD和DMA,因此去掉相应的注释,同时几乎所有的应用都需要使用复位与时钟以及通用I/O,因此这两项是必须的,

而多数程序同样要使用NVIC中断IRQ设置和SysTick时钟源设置,那么 “”这一项也是必须的。

上面已经针对具体的产品信号和程序功能进行了针对性的配置,接下来需要配置系统所使用的时钟,系统时钟在“”同样通过注释的方式来配置,程序如下:

#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)

/* #define SYSCLK_FREQ_HSE HSE_VALUE */

#define SYSCLK_FREQ_24MHz

#else

/* #define SYSCLK_FREQ_HSE HSE_VALUE */

/* #define SYSCLK_FREQ_24MHz */

/* #define SYSCLK_FREQ_36MHz */

/* #define SYSCLK_FREQ_48MHz */

/* #define SYSCLK_FREQ_56MHz */

#define SYSCLK_FREQ_72MHz

#endif

如果这儿没有明确的定义那么HSI时钟将会作为系统时钟。

至此,已经配置了系统的主要外部参数,这些参数主要是通过更改相关的宏定义来实现的,有些开发环境,例如Keil支持在软件设置中加入全局宏定义,因此像芯片系列定义,是否使用固件库定义等也可以通过软件添加来实现。

完成了主要参数配置以后就可以进行程序的开发了,标准外设库开发就可以使用标准外设库中提供的方便的API函数进行相应的功能设计了。在小节中已经介绍了基于标准外设库开发的优势,配置完成后,程序中仍然可以直接更改相应寄存器的配置,通过对寄存器的操作可以提高程序的效率,因此可以使用标准外设库和寄存器操作两种相结合的方式。

8nztx4crw12mdyx423a46cyp27lzc201bo4
领取福利

微信扫码领取福利

微信扫码分享