STM32笔记教学提纲_第1页
STM32笔记教学提纲_第2页
STM32笔记教学提纲_第3页
STM32笔记教学提纲_第4页
STM32笔记教学提纲_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Good is good, but better carries it.精益求精,善益求善。STM32笔记-Erasedv.抹去(erase的过去分词);消除Programmedadj.程序化的,程控的Verifiedadj.已查清的,已证实的,已验证的stm32f10 x.h类似于51单片机中的头文件reg51.h一样,定义了如P0、P1等特殊寄存器的名称与实际物理地址相对应stm32f10 x_conf.h是用户需要配置的头文件,当我们需要用到某部分外设驱动时,我们只需要将该部分外设的头文件包含进来即可。configuredadj.配置;配置的故,添加外设驱动文件stm32f10 x_xx

2、x.c的时候,可以把全部驱动文件全部添加进来,然后通过stm32f10 x_conf.h文件选择性的添加;也即,只有在stm32f10 x_conf.h文件中配置的文件才会被编译。Stm32f10 x_it.c和Stm32f10 x_it.h这两个文件里面是中断函数,里面内容为空,并没有写任何中断服务程序,需用户添加;itinterruptvi.打断;打扰Core_cm3.c和Core_cm3.h是位于Libraries/CMSIS/CM3文件夹下的Coresupport的文件,它们是CMSIS标准的核内设备函数层的M3核通用的源文件和头文件,其作用是为那些采用Cortex-M3核设计SOC的

3、芯片的外设提供一个进入M3内核的接口,这两个文件在其他公司的M3系列芯片也是相同的。什么是JTAG接口JTAG(JointTestActionGroup联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(TestAccessPort测试访问口),通过专用的JTAG测试工具对内部节点进行测试。TAP控制器的状态机通过TCK和TMS进行状态的改变,实现数据和指令的输入。目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TD

4、I、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。(Testmodeselecet、testclock、testdatainput、testdataoutput)JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。JTAG接口还常用于实现ISP(In-SystemProgrammable在系统编程)功能,如对FLASH器件进行编程等。通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。目前JTAG接口的连接有两种标准,即14针接口和20针接口,其定义分别如下所示。STM32总线AHBA

5、dvancedHightSpeedBuses先进高速总线数据总线D-bus、系统总线、STM32内部的SRAM和DMA单元都挂载在AHB上;AHB总线的工作频率与Cortex-M3内核一致,但AHB总线上挂着许多独立的分频器,可以输出较低的时钟频率而达到较低功耗APBAdvancedPeripheralBuses先进外部设备总线每一条APB又都与AHB总线矩阵相连APB1总线只能以最大36MHz频率运行,而APB2总线可以最大72MHz频率运行DMA(DirectMemoryAccess)控制器是一种在系统内部转移数据的独特外设。可以将其视为一种能够通过一组专用总线,将内部和外部存储器与每个具

6、有DMA能力的外设连接起来的控制器。它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。小结:在stm32f10 x_gpio.h中,只有GPIO_InitTypeDef一个数据结构,在stm32f10 x_uart.h中有两个数据结构USART_ClockInitTypeDef和USART_InitTypeDef.相信在其他的stm32f10 x_xxx.h中也是如此,即有针对性的数据结构,不会好多而混乱。也就是说,在不同外设的头文件里,都有几个针对该外

7、设的数据结构,这些数据结构,也就是该外设驱动函数的操作对象(作为一个输入参数)。我们要做的就是:定义数据结构,对数据结构成员赋值,调用驱动函数,当然,如果可能有多重配置等,可以定义多个数据结构。库函数编程:其实很简单:在stm32f10 x/h中都会有定义一个与外设有关的控制/状态寄存器数据结构(typedefinestruct)。在stm32f10 x_xxx.h相应外设驱动头文件中,都会有几个已赋值的描述外设状态的枚举结构(typedefineenum)和对外设状态设置的数据结构(typedefine).。在stm32f10 x_xxx.c中的驱动函数,主要是对已配置好的控制/状态寄存器等

8、进行操作,只管调用就行了。小结:定义一个外设状态设置的数据结构(typedefine),利用枚举成员(typedefineenum)对该数据结构赋值,再调用驱动函数,数据结构为输入参数,把参数赋给驱动函数内部的寄存器数据结构,从而控制外设。数据结构XXX_IintTypeDef也即XXXInitstructuredefinitionUSART_ClockInitTypeDef在stm32f10 x_usart.h头文件中定义USART_InitTypeDefUSART_TypeDef包含在stm32f10 x.h内,定义USART外设的寄存器结构在stm32f10 x_XXX.h头文件中定义的

9、数据结构:XXX_ClockInitTypeDef外设时钟初始化XXX_InitTypeDef外设初始化XXX_TypeDef包含在stm32f10 x.h内,定义XXX外设的寄存器结构例如:GPIO_TypeDef也即GPIO_TypeDefStructReferencetypedefstruct_IOuint32_tCRL;_IOuint32_tCRH;_IOuint32_tIDR;_IOuint32_tODR;_IOuint32_tBSRR;_IOuint32_tBRR;_IOuint32_tLCKR;GPIO_TypeDef;包含在stm32f10 x.h内的XXX_TypeDef数据

10、结构体,定义了XXX外设的寄存器结构,利用了结构体内成员在内存中的连续性,而外设的控制寄存器也是连续分布的。而对应stm32f10 x_xxx.c内的驱动函数,大都是操作外设寄存器的,所以XXX_TypeDef都是输入参数,其实驱动函数本来就是基于寄存器的操作,而XXX_TypeDef是寄存器的集合体。而包含在stm32f10 x_XXX.h内的数据结构体,定义了“可选择的枚举类型”的数据,即把外设配置成什么工作方式。其内的结构成员是枚举类型或宏定义,也即取值范围固定,用具有特定含义的名字代替数据:typedefstructuint16_tGPIO_Pin;GPIOSpeed_TypeDefG

11、PIO_Speed;GPIOMode_TypeDefGPIO_Mode;GPIO_InitTypeDef;voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)GPIO_TypeDef*GPIOx定义GPIOx参数为GPIO_TypeDef类型的指针;GPIO_InitTypeDef*GPIO_InitStruct定义GPIO_InitStruct参数为GPIO_InitTypeDef类型的指针一、宏定义-库函数版/带参宏,可以像内联函数一样使用#defineLED1(a)if(a)GPIO_SetBits(GPIOA,GPIO_Pin_2);elseGPIO_ResetBits(GPIOA,GPIO_Pin_2)二、直接操作寄存器GPIOB-ODR=0XFFFE;/低电平,GPIOB0(LED0)灯亮Delay(0 x0FFFFF);GPIOB-ODR=0XFFFF;/高电平,GPIOB0(LED0)灯灭三、宏定义-寄存器版/*直接操作寄存器的方法控制IOBSR输出寄存器*/#definedigitalHi(p,i)p-BSRR=i;/设置为高电平#definedigitalLo(p,i)p-BRR=i;/输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论