STM32F407运用总结.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32F407运用总结

STM32运用总结 主要分为IO口,定时器的PWM和QEI,中断,ADC,DAC和DMA介绍。在STM32的运用中第一步一般是使能相应模块的时钟,然后配置IO口,最后配置相应的寄存器。 IO口 STM32的IO口非常多,而且与其它外设模块通常是复用的。在不同的外设中IO口的设置是不一样的。这一部分介绍普通的数值IO口。IO口有A-G共7组,每组16口。 IO口在时钟总线AHB1上,使能对应端口的时钟。在寄存器RCC-AHB1ENR中。 配置IO口的模式,普通的IO口配置为普通的输入输出模式。配置IO口是悬空还是上拉或者下拉。以上两步分别在寄存器GPIOx-MODER和GPIOx- PUPDR(x=A,B,C,D,E,F,G) 其中配置为输出模式时还要设置速度和相应的输出方式,开漏或者推挽,以上两步分别在寄存器GPIOx- OSPEEDR和GPIOx-OTYPER(x=A,B,C,D,E,F,G)。 设置IO口的高低电平。在寄存器GPIOx-BSRRH中置相应的位为1就是将相应的位置0,在寄存器GPIOx-BSRRL中置相应的位为1就是将相应的位置1.另外还可以设置GPIOx_ODR寄存器来设置输出电平以及读取GPIOx_IDR寄存器来获取输入电平。 PWM STM32的定时器也非常之多,用到的主要是两个部分:用定时器产生PWM和定时触发ADC,这里一部分介绍PWM。(高级定时器的配置和这差不多,由于在STM32F103里面已经尝试过在STM32F407里面就没有再写) 配置IO口。我们说过STM32的外设模块主要是和IO口复用的,因此在使用外设模块时首先配置好相应的IO口。比如使用A口的PA1作为定时器Timer2的PWM输出。则应按照如下的步骤来配置PA1。 使能A口的时钟。在寄存器RCC-AHB1ENR中。 配置PA1为复用功能。在寄存器GPIOA-MODER中。 配置PA1的上拉下拉或者悬空。在寄存器GPIOA-PUPDR中。 配置PA1的速度。在GPIOA-OSPEEDR中。 配置PA1的复用功能是和Timer2对应的。在GPIOA-AFR[0]中。(相对应的复用对应表数据手册上有)。 配置定时器模块 使能相应的定时器模块时钟(注意不同的定时器在不同的时钟总线上)。Timer2在APB1总线上。所以在RCC-APB1ENR中使能Timer2. 设置定时器的预分频系数,周期值。在寄存器TIMx-PSC和TIMx-ARR中设置(对应不同的寄存器x取不同的值,比如用Timer2,则x=2)。 软件产生一次更新事件将刚才设置的值导入到周期寄存器中。在TIMx-EGR中设置。 使能自动重装载功能与否,使能相应的事件,配置计数方式。在TIMx-CR1中设置。 配置Timer2的捕获比较通道。共有四路捕获比较通道,我们这里用的是CC2通道。将CC2配置为输出比较模式(OC),PWM2方式,预装载使能等。在TIMx-CCMR1(CC1/OC1和CC2/OC2)和TIMx-CCMR2(CC3/OC3和CC4/OC4). 设置匹配值,用来控制占空比。在TIMx-CCR2中。 使能输出比较使能或者比较捕获功能。在TIMx-CCER中。 清空计数值。TIMx-CNT=0。 使能计数。在TIMx-CR1中。注意把这一项放在最后写,否者会由于寄存器之间的互锁写保护产生一些问题。 QEI QEI的使用主要是对照着数据手册上的说明来,具体没有什么多说的。程序里面有详细的注释。 中断系统 STM32的中断主要设置中断优先级的配置,中断服务函数的命名,以及中断服务函数的处理等几个方面。 在STM32的中断系统中有抢占优先级和次占(响应)优先级的概念。其中数值越低代表优先级越高。高优先级的抢占可以打断低优先级的抢占。同优先级的抢占中,不同的次占(响应)优先级不可以相互打断,次占(响应)只是表示同时发生时先执行优先级高的次占。抢占优先级和次占(响应)优先级共占有4位,可以根据不同的设置来改变抢占优先级的次占(响应)优先级的位数,一个程序中抢占优先级的次占(响应)优先级的位数的设置只能有一次,且不能再改变。抢占优先级和次占(响应)优先级的配置之前要写入一个合适的序列才能实现配置。在SCB-AIRCR寄存器中先写入 0x05FA0000,然后根据下表中SCB-AIRCR[10:8]位数值的不同来配置抢占和次占(响应)的位数。例如SCB-AIRCR =0x05FA0000 | 0x400,表示抢占3为,次占(响应)1位。 配置相应的中断优先级。首先要找到相应的中断的IP号(即在启动文件中的入口地址,如下图所示第一个为0,依次往后面数即可,在数据手册上也给出来了)。然后在寄存器NVIC-IP[n]中配置优先级,

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档