欢迎来到天天文库
浏览记录
ID:44703603
大小:605.10 KB
页数:28页
时间:2019-10-25
《STM32学习笔记 原创》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、STM32野火模版:CMSIS:(CortexMicrocontrollerSoftwareInterfaceStandard)是ARMCortex微控制器软件接口标准。启动文件及CortexM3所使用的库,所有ARMCortexM3架构处理器通用FWlib:STM32的片内资源的驱动,由意法公司提供USER:用户写的文件、config头文件、中断函数的h、c文件及工程文件Output:编译后的输出文件STM32库结构:Libraries:要用到的库文件都在Libraries里面,其中CMSIS同上,STM32F10x_S
2、tdPeriph_Driver则为STM32片内资源的驱动。Project:为示例与不同开发软件下的模板Utilities:ST官方开发板的外设驱动#ifdefUSE_STDPERIPH_DRIVER#include"stm32f10x_conf.h"#endif//位于stm32f10x.h一、流水灯实验学习中要查看以下文档:1.库的查询手册《stm32f10x_stdperiph_lib_um.chm》2.野火STM32管脚分配《野火M3主芯片STM32F103VET6资源分配.txt》3.实验教程《野火M3教程.pd
3、f》4.STM32手册《STM32参考手册中文.pdf》、《STM32参考手册英文.pdf》5.《CM3权威指南CnR2.pdf》本实验涉及到两个片内外设的操作:RCC(ResetandClockControl)和GPIO。RCC:这里只用到函数SystemInit()将系统时钟设置为72M,不赘述。GPIO:GPIO的初始化和GPIO的置位与清零操作。GPIO的初始化:见以下代码voidLED_GPIO_Config(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2Per
4、iphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3
5、GPIO_Pin_4
6、GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStructure);GPIO_SetBits(GPIOC,GPIO_Pin_3
7、GP
8、IO_Pin_4
9、GPIO_Pin_5);//turnoffallled}可见,GPIO的初始化用的是库函数GPIO_Init()voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)两个参数中前者是GPIO的组号,填上GPIOA-GPIOE中的一个即可。后者是GPIO设置的结构体GPIO_InitTypeDef*,该结构体中包含三个成员:GPIO_Pin、GPIO_Mode、GPIO_Speed,分别用于对具体的管脚、对GPIO功能及GPIO输
10、出速度进行配置。具体可选值的宏定义查手册。另外还有函数RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);。它指定了GPIO采用高速外设的时钟。STM32所有的IO口都是高速的,所以这句是在使用IO时必须要的一句。GPIO的赋值操作使用到库函数GPIO_ResetBits()、GPIO_SetBits()voidGPIO_ResetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)voidGPIO_SetBits(GPIO_TypeDef*
11、GPIOx,uint16_tGPIO_Pin)另外,关于GPIO操作还有许多其他库函数,我们只需查找库查询手册的Modules->StdPeriph_Driver->GPIO->GPIO_Private_Functions即可。二、SysTick实验本实验涉及到了SysTick,即系统滴答定时器,以及向量中断控制器NVIC。NVIC与CM3内核逻辑紧密相连,在包含控制寄存器和中断处理的控制逻辑外,还包含了MPU、SysTick定时器及调试控制相关的寄存器。SysTick定时器被捆绑在NVIC中,用于产生SysTick异常(
12、异常号:15)。在以前,操作系统还有所有使用了时基的系统,都必须要一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。操作系统需要用它来为多个任务分以不同数目的时间片,实现分时复用。而此SysTick定时器即用于产生滴答中断。在STM32中,SysTick以FCLK(内部时钟,CM3上自由运行的
此文档下载收益归作者所有