2.stm32f10x.h
该文件是外设访问层的头文件,该文件是最重要的头文件之一。就像51里面的reg51.h一样。例如定义了 CPU是哪种容量的 CPU,中断向量等等。除了这些该头文件还定义了和外设寄存器相关的结构体,例如:
typedef struct
{
__IO uint32_t CR;
__IO uint32_t CFGR;
__IO uint32_t CIR;
__IO uint32_t APB2RSTR;
__IO uint32_t APB1RSTR;
__IO uint32_t AHBENR;
__IO uint32_t APB2ENR;
__IO uint32_t APB1ENR;
__IO uint32_t BDCR;
__IO uint32_t CSR;
#ifdef STM32F10X_CL
__IO uint32_t AHBRSTR;
__IO uint32_t CFGR2;
#endif /* STM32F10X_CL */
#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL)
uint32_t RESERVED0;
__IO uint32_t CFGR2;
#endif /* STM32F10X_LD_VL || STM32F10X_MD_VL || STM32F10X_HD_VL */
} RCC_TypeDef;
包含了那么多寄存器的定义,那么在应用文件中(例如自己编写的 main 源文件)只需要包含
stm32f10x.h即可,而不是以前固件库的需要包含 stm32f10x_conf.h这个头文件。--摘自《在Keil MDK+环境下使用STM32 V3.4库》 3.system_stm32f10x.c/h
该头文件也可以称为外设访问层的头文件和源文件。在该文件中可以定义系统的时钟频率,定义低速时钟
总线和高速时钟总线的频率,其中最关键的函数就是 SystemInit()了,这个后面会详细介绍。总之这两
个文件是新固件库的重点,有了它粮也大大简化了使用 stm32的初始化工作。--摘自《在Keil MDK+环境下使用STM32 V3.4库》 4.stm32f10x_conf.h
这个文件和 V2 版本的库的内容是一样的,需要使用哪些外设就取消哪些外设的注释。例如需要使用 GPIO功能,但不使用 SPI功能,就可以这样操作。--摘自《在Keil MDK+环境下使用STM32 V3.4库》 - #include"stm32f10x_gpio.h"
- /*#include"stm32f10x_spi.h"*/
5.main.c
这个文件就不用多说了,自己编写。 --摘自《在Keil MDK+环境下使用STM32 V3.4库》
6.stm32f10x_it.c/h
这两个文件包含了 stm32中断函数,在源文件和头文件中并没有把所有的中断入口函数都写出来,而
只写了 ARM内核的几个异常中断,其他的中断函数需要用户自己编写。--摘自《在Keil MDK+环境下使用STM32 V3.4库》 OK,开始写代码了。 由于3.4的库在启动的时候已经设置好时钟了(将在后面有讲述),所以我们只需设置好对应的GPIO即可。 查看硬件连接:
来点亮PF6. 新建led.c与led.h,添加到User Code下面。 led.h #ifndef _LED_H_
#define _LED_H_
void Delay(uint32_t times);
void LedInit(void);
#endif
led.c #include "stm32f10x.h"
/************************************************************************
* 函数名 :LedInit(void)
* 描述 :
* 输入 :无
* 输出 :无
* 返回 :无
************************************************************************/
void LedInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/*初始化 GPIOF的 Pin_6为推挽输出*/
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOF,&GPIO_InitStructure);
}
/************************************************************************
* 函数名 :Delay(uint32_t times)
* 描述 :延时函数
* 输入 :uint32_t times
* 输出 :无
* 返回 :无
************************************************************************/
void Delay(uint32_t times)
{
while(times--)
{
uint32_t i;
for (i=0; i<0xffff; i++)
;
}
}
|